長瀞早瀬 Posted January 15, 2017 Share Posted January 15, 2017 День добрый,столкнулся с такой проблемкой: Выполняю запрос на получение данных из БД function authUserDB(userName, userPassword, thePlayer) dbExec( bd,"SELECT `password` FROM Players WHERE nick='??'",userName) local Players = dbPoll(dbQuery(bd, "SELECT * FROM `Players`"), -1) for Index, PlayerData in ipairs(Players) do if userName == userName and userPassword == PlayerData.password then if (client) then spawnPlayer(client, 1721.7834, -1927.0063, 13.5672) setPlayerSkin(client,0) fadeCamera(client, true) setCameraTarget(client, client) triggerClientEvent(getRootElement(),"hideLogin",client) dbExec( bd,"SELECT `id` FROM Players WHERE nick='??'",client) local Players = dbPoll(dbQuery(bd, "SELECT * FROM `Players`"), -1) for Index, PlayerData in ipairs(Players) do setElementData ( source, "ID", PlayerData.id ) outputChatBox("С возвращением на на ****** RP, "..userName.."! Ваш ID "..PlayerData.id..".", client) end end else outputChatBox("Неправильные логин и пароль. Пожалуйста, переподсоединитесь и попробуйте еще раз.",client) end end end addEvent("submitLogin",true) addEventHandler("submitLogin",root,authUserDB) Дело в том,что ответ приходит несколько раз,и количество повторов зависит от количества записей в БД. Подскажите пожалуйста где я накосячил) Link to comment
Kenix Posted January 15, 2017 Share Posted January 15, 2017 (edited) dbPoll(dbQuery(bd, "SELECT * FROM `Players`"), -1) Вы похоже не понимаете, что сами делаете, вы делаете выборку всех записей без условий, но это неверное решение, вам нужно использовать оператор WHERE в SQL запросе. dbExec( bd,"SELECT `password` FROM Players WHERE nick='??'",userName) dbExec делает запрос БЕЗ ПОЛУЧЕНИЯ РЕЗУЛЬТАТА, зачем вы его тогда вообще делаете? Используйте для этого функции dbQuery + dbPoll. Также у вас 3 и 13 строки повторяются. + на 13 строке у вас нету словия проверки по id. Я вообще не понимаю зачем вам делать столько запросов, лучше всего делать один запрос, чем много маленьких. Перед тем, как делать что-то нужно хорошо изучить. Почитайте эти статьи:http://www.mysql.ru/docs/ (Если вы используете MySQL) Edited January 15, 2017 by Kenix Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now