Jump to content

Многократный ответ от БД


Recommended Posts

День добрый,столкнулся с такой проблемкой: Выполняю запрос на получение данных из БД

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

 

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 by Kenix
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...