Jump to content

Problem z wyciągnięciem danych z tabeli


Recommended Posts

 

skrypt do poprawy 

local dbPolicja = dbConnect("sqlite",":/frakcje.db")
function spawn()
local nazwaGracza = getPlayerName(source)
local nazwa = getServerName ()
outputChatBox ("Witaj "..nazwaGracza.. " na serwerze "..nazwa.."! Administracja zyczy milej gry!",source)
spawnPlayer(source,-204.71535, 1119.36426, 19.74219,-90,0,0,0)
fadeCamera(source,true)
setCameraTarget(source,source)
if dbPolicja then
local qh = dbQuery(dbPolicja,"SELECT * FROM pol WHERE nick=?", nazwaGracza)
local wynik = dbPoll(qh,-1)
if not wynik == nil then 
iprint(wynik)
for k,v in pairs(wynik) do 
if v == nazwaGracza then 

setElementData(source,"policja",true)

end
end
end
end

end


addEventHandler("onPlayerJoin",root,spawn)

Problem polega na tym ze w tabeli, która ma tylko kolumnę nick iprint w konsoli wyświetla  INFO: { {
nick = "jakisnick**"

} }

i teraz nie wiem jak wyciągnąć wartość stringu nick z tabeli. Próbowałem z pętlami for, ale albo kończyło się błędem, albo zwróceniem wartości nil. Próbowałem robić to na zasadzie if wynik then, ale to nie usuwało problemu, nawet jak nie było mojego nicku w tabeli w bazie danych (sprawdzałem programem DBbrowser) zawsze if stwierdzał, że jednak mój nick jest w bazie danych (tutaj jest akurat mój błąd, bo dbPoll zwraca wartość false w przypadku wystąpienia błędu, więc tu if miał rację). If not wynik == nil then też nie działa, dzieje się dokładnie to samo co w przypadku if wynik then, czyli nie ważne czy nick jest w bazie czy nie, i tak if zwraca prawdę. iprint w konsoli wyświetla coś takiego INFO : {} . Już naprawdę nie mam pomysłów jak i co jeszcze można zrobic.

Proszę o  pomoc. 

** - dowolna wartość string 

 

Link to comment
  • 4 months later...

Trochę namieszałeś

 

local dbPolicja = dbConnect("sqlite",":/frakcje.db")
function spawn()
	local nazwaGracza = getPlayerName(source)
	local nazwa = getServerName ()
	outputChatBox ("Witaj "..nazwaGracza.. " na serwerze "..nazwa.."! Administracja zyczy milej gry!",source)
	spawnPlayer(source,-204.71535, 1119.36426, 19.74219,-90,0,0,0)
	fadeCamera(source,true)
	setCameraTarget(source,source)
	
	if dbPolicja then
		local qh = dbQuery(dbPolicja,"SELECT * FROM pol WHERE nick=?", nazwaGracza)
		local wynik = dbPoll(qh,-1)
		
		if wynik and wynik[1] then
			if wynik[1]['nick'] == nazwaGracza then 
				setElementData(source,"policja",true)
			end
		end
	end
end
addEventHandler("onPlayerJoin",root,spawn)

 

Edited by Seba500PLK
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...