Wysłany: 2016-10-18, 16:37
amited
Wiek: 26 Na forum: 3714 dni Posty: 1233
Nick w MP: Amited
Piwa : 512
Od razu m?wi? ?e jestem zielony, poniewa? pierwszy raz pisz? cokolwiek z u?yciem sql oraz .db. Co do mojego problemu. Chcia?bym abym po wpisaniu komendy "/dodaj" do pliku.db zosta?y dodane 2 argumenty: nazwa pojazdu oraz jego ID(z gry) oraz po wpisaniu "/pobierz" aby si? te 2 argumenty wy?wietli?y. Prosz? o przerobienie albo podpowied? co jest ?le bo sam robie to pierwszy raz i nie wiem jak by to mia?o wygl?da?(poradnik do sql widzia?em). Mam co? takiego:
local connect = dbConnect ( "sqlite" , "aukcje.db" )
if connect then
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? powodzeniem." )
else
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? nie powodzeniem." )
stopResource ( getThisResource ())
end
function dodajs ()
dbQuery ( connect , "INSERT INTO aukcje ( pojazd, idpojazdu ) VALUES ( ?,?)" , pojazd , idpojazdu )
end
addCommandHandler ( "dodajs" , dodajs )
function create_table ()
dbExec ( connect , "CREATE TABLE IF NOT EXISTS aukcje ( pojazd VARCHAR, idpojazdu INTEGER )" )
end
addCommandHandler ( "stworz" , create_table )
function dodajdosql ( source , commandName )
if isPedInVehicle ( source ) then
local idpo = getPedOccupiedVehicle ( source )
local pojazd = getVehicleName ( idpo )
local idpojazdu = getElementModel ( idpo )
dbQuery ( connect , "UPDATE aukcje SET idpojazdu = ? WHERE pojazd = ?" , idpojazdu , pojazd )
else
return end
end
addCommandHandler ( "dodaj" , dodajdosql )
function pobierz_wynik ( source )
local idpo = getPedOccupiedVehicle ( source )
local pojazd = getVehicleName ( idpo )
local idpojazdu = getElementModel ( idpo )
local qh = dbQuery ( connect , "SELECT * FROM aukcje WHERE pojazd = ? WHERE idpojazdu = ?" , pojazd , idpojazdu )
local result = dbPoll ( qh , - 1 )
for i , row in ipairs ( result ) do
outputChatBox ( "Name: " .. row [ "pojazd" ].. " ID: " .. row [ "idpojazdu" ], source )
end
end
addCommandHandler ( "pobierz" , pobierz_wynik )
Wysłany: 2016-10-18, 17:17
Brzysiek
Skrypter pralek
Wiek: 27 Na forum: 5199 dni Posty: 488
Nick w MP: Brzysiek
Piwa : 1034
Jeden ma?y b??d w komendzie pobierz. Prawid?owe zapytanie:
SELECT * FROM aukcje WHERE pojazd = ? AND idpojazdu = ?
Pami?taj tylko, ?e taki spos?b zapisu mo?e powodowa? powielanie si? danych. Pojazdy maj? te same nazwy i ID.
Wysłany: 2016-10-18, 18:13
amited
Wiek: 26 Na forum: 3714 dni Posty: 1233
Nick w MP: Amited
Piwa : 512
Zmieni?em tak jak powiedzia?e? i teraz nic si? nie dzieje, auto z ID si? nie zapisuje, podczas wpisywania /dodaj, /pobierz nie ma ?adnych b??d?w w db3 ani consoli. Sprawdzi?em czy sama funkcja dzia?a i doda?em linijke:
outputChatBox ( " Siedzisz w " .. pojazd .. " o id: " .. idpojazdu .. "." , source )
w funkcji "dodajdosql" przed dbQuery i sama funkcja dzia?a wi?c co? jest z dbQuery. jakie? sugestie?
Podpis
"amited" napisał/a :
Wysłany: 2016-10-18, 18:20
Brzysiek
Skrypter pralek
Wiek: 27 Na forum: 5199 dni Posty: 488
Nick w MP: Brzysiek
Piwa : 1034
Więcej informacji znajdziesz w Wikipedii MTA: dbFree
U?yj tej funkcji na dbQuery i wtedy b?dzie wiadomo co jest nie tak z zapytaniami.
Edit: komenda /dodaj nie tworzy wpis?w w bazie, tylko aktualizuje ID pojazdu. To zamierzone?
Wysłany: 2016-10-18, 18:33
amited
Wiek: 26 Na forum: 3714 dni Posty: 1233
Nick w MP: Amited
Piwa : 512
Brzysiek ,
Komenda /dodaj ma doda? pojazd gracza do bazy danych i poda? nazw? pojazdu oraz jego id z gry. Da?em dbFree jednak?e dalej 0 odzewu z db3 i consoli. Teraz co? takiego mam:
local connect = dbConnect ( "sqlite" , "aukcje.db" )
if connect then
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? powodzeniem." )
else
outputDebugString ( "Po??czenie z baz? SQLite zako?czy?o si? nie powodzeniem." )
stopResource ( getThisResource ())
end
function dodajs ()
dbQuery ( connect , "INSERT INTO aukcje ( pojazd, idpojazdu ) VALUES ( ?,?)" , pojazd , idpojazdu )
end
addCommandHandler ( "dodajs" , dodajs )
function create_table ()
dbExec ( connect , "CREATE TABLE IF NOT EXISTS aukcje ( pojazd VARCHAR, idpojazdu INTEGER )" )
end
addCommandHandler ( "stworz" , create_table )
function dodajdosql ( source )
if isPedInVehicle ( source ) then
local idpo = getPedOccupiedVehicle ( source )
local pojazd = getVehicleName ( idpo )
local idpojazdu = getElementModel ( idpo )
outputChatBox ( " Siedzisz w " .. pojazd .. " o id: " .. idpojazdu .. "." , source )
dbQuery ( connect , "UPDATE aukcje SET idpojazdu = ? WHERE pojazd = ?" , idpojazdu , pojazd )
else
outputChatBox ( "Aby doda? auto musisz w nim by?!" , source )
return end
end
addCommandHandler ( "dodaj" , dodajdosql )
function pobierz_wynik ( source )
local idpo = getPedOccupiedVehicle ( source )
local pojazd = getVehicleName ( idpo )
local idpojazdu = getElementModel ( idpo )
local qh = dbQuery ( connect , "SELECT * FROM aukcje WHERE pojazd = ? AND idpojazdu = ?" , pojazd , idpojazdu )
local result = dbPoll ( qh , - 1 )
dbFree ( qh )
for i , row in ipairs ( result ) do
outputChatBox ( "Name: " .. row [ "pojazd" ].. " ID: " .. row [ "idpojazdu" ], source )
end
end
addCommandHandler ( "pobierz" , pobierz_wynik )
Wysłany: 2016-10-18, 18:43
Brzysiek
Skrypter pralek
Wiek: 27 Na forum: 5199 dni Posty: 488
Nick w MP: Brzysiek
Piwa : 1034
dbFree u?ywamy tylko na dbQuery (element, kt?ry zwraca).
dbQuery ( connect , "INSERT INTO aukcje(pojazd, idpojazdu) VALUES (?, ?)" , pojazd , idpojazdu )
U?yj tego zapytania by doda? auto do bazy.
Wysłany: 2016-10-18, 19:04
amited
Wiek: 26 Na forum: 3714 dni Posty: 1233
Nick w MP: Amited
Piwa : 512
Brzysiek ,
my?la?em ?e co? b?dzie zamiast tego, dzi?ki wielkie Piwo dla Ciebie i prosz? zamkn??
Podpis
"amited" napisał/a :
Tagi: zapis :: pobranych :: danych :: sql
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: