Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-10-18, 16:37


amited







Wiek: 26
Na forum: 3855 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

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)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-18, 17:17


Brzysiek

Skrypter pralek






Wiek: 28
Na forum: 5340 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-18, 18:13


amited







Wiek: 26
Na forum: 3855 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

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:
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-18, 18:20


Brzysiek

Skrypter pralek






Wiek: 28
Na forum: 5340 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360


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?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-18, 18:33


amited







Wiek: 26
Na forum: 3855 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

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)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-18, 18:43


Brzysiek

Skrypter pralek






Wiek: 28
Na forum: 5340 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-18, 19:04


amited







Wiek: 26
Na forum: 3855 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

Brzysiek,
my?la?em ?e co? b?dzie zamiast tego, dzi?ki wielkie :) Piwo dla Ciebie i prosz? zamkn??

Podpis
"amited" napisał/a:
Postaw piwo autorowi tego posta
 

 
Tagi: zapis :: pobranych :: danych :: sql
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku