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

Wysłany: 2016-07-20, 17:41


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4149 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Prawie dobrze tylko zuawa?y?em w bazie, ?e zamiast aktualizowa? rekordy, dodaje nast?pne.

Podpis
Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- dawniej
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-20, 18:25


eject

kurdebele






Wiek: 30
Na forum: 3659 dni
Posty: 182
Nick w MP: EjecT

Piwa: 2456

Respekt: 85,8

Ostrzeżeń: 60%
teraz usun -- przy id zeby pobieralo id przy update

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-20, 18:29


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4149 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Nadal
local connect dbConnect("sqlite""test.db")

if connect then
outputDebugString("Po??czono z baz? danych")
else
outputDebugString("Nie uda?o si? po??czy? z baz? danych")
end



function zapis()
for k,v in ipairs(getElementsByType("vehicle")) do
local id getElementData(v"car_id")
    if id then
local paliwo getElementData(v"fuel") or 0
local przebieg getElementData(v"przebieg") or 0
local woda getElementData(v"zapelnienie") or 0
dbQuery(connect"INSERT INTO dane (paliwo,przebieg,woda, id) VALUES(?,?,?,?)"paliwoprzebiegwoda,id)
end
end
end
addEventHandler("onResourceStop",resourceRoot,zapis)

function odczyt()
dbQuery(connect"SELECT * FROM dane")
end
addEventHandler("onResourceStart",resourceRoot,odczyt)

function aktualizacja()
for k,v in ipairs(getElementsByType("vehicle")) do
local id getElementData(v"car_id")
        if id then
local paliwo getElementData(v"fuel") or 0
local przebieg getElementData(v"przebieg") or 0
local woda getElementData(v"zapelnienie") or 0
local test dbExec(connect"UPDATE dane SET paliwo=?, przebieg=?, woda=? WHERE id=?",paliwo,przebieg,woda,id)
if test then
outputDebugString("Zaktualizowano dane")
end
end
end
end
--setTimer(aktualizacja500)
addCommandHandler("zapisuj",aktualizacja)


Podpis
Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- dawniej
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-20, 19:41


Brzysiek

Skrypter pralek






Wiek: 27
Na forum: 5198 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

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

Nic dziwnego. W onResourceStop masz inserta, czyli z ka?dym zatrzymaniem zasobu b?d? wpisywane dane. Zamie? to na UPDATE.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-20, 21:42


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

marcin778, w funkcji zapis musisz u?y? zapytania opartego o SELECT i sprawdzenie czy takie auto istnieje w bazie danych je?eli nie to dodajesz a je?eli nie to updatujesz je tylko.

Tutaj masz m?j poradnik w kt?rym prawie wszystko jest opisane.
http://gtao.pl/poradnik-sql-sqlite-vt102403.htm

"eject" napisał/a:

marcin778, Mo?na u?ywa? lecz jest to obci??enie dla servera oraz to jest wygodniejsze

To nie jest prawda. Poniewa? w ten spos?b czy standardowy dodaj?c argumenty tak samo jest obci??any serwer. A co do wygody metod to jest kwestia indywidualna.

Kolejna sprawa marcin778, jest ni? ten Timer, lepiej u?y? komendy i je?eli gracz jest w aucie to sprawdza czy to jest auto prywatne oraz jakie ma id i sprawdzasz czy jest, je?eli jest to dodajesz je do bazy danych, a je?eli jest to tylko updatetujesz. Timer w takim zastosowaniu jest po prostu nie optymalny jak mo?na wykona? lepiej oraz efektywniej.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-20, 21:59


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4149 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

Brzysiek, Nie dzia?a, nie zapisuje wcale nic.

local connect dbConnect("sqlite""test.db")

if connect then
outputDebugString("Po??czono z baz? danych")
else
outputDebugString("Nie uda?o si? po??czy? z baz? danych")
end



function zapis()
for k,v in ipairs(getElementsByType("vehicle")) do
local id getElementData(v"car_id")
    if id then
local paliwo getElementData(v"fuel") or 0
local przebieg getElementData(v"przebieg") or 0
local woda getElementData(v"zapelnienie") or 0
dbExec(connect"UPDATE dane SET paliwo=?, przebieg=?, woda=? WHERE id=?",paliwo,przebieg,woda,id)
end
end
end
addEventHandler("onResourceStop",resourceRoot,zapis)

function odczyt()
dbQuery(connect"SELECT * FROM dane")
end
addEventHandler("onResourceStart",resourceRoot,odczyt)

function aktualizacja()
for k,v in ipairs(getElementsByType("vehicle")) do
local id getElementData(v"car_id")
        if id then
local paliwo getElementData(v"fuel") or 0
local przebieg getElementData(v"przebieg") or 0
local woda getElementData(v"zapelnienie") or 0
local test dbExec(connect"UPDATE dane SET paliwo=?, przebieg=?, woda=? WHERE id=?",paliwo,przebieg,woda,id)
if test then
outputDebugString("Zaktualizowano dane")
end
end
end
end
--setTimer(aktualizacja500)
addCommandHandler("zapisuj",aktualizacja)


luki123luki123, Ca?y czas korzystam z tego poradnika, ale to co teraz napisa?e? nie zbyt rozumiem :P to moje pierwsze kroki w SQL

Podpis
Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- dawniej
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-21, 13:37


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

marcin778, zacznijmy co b?dzie ci potrzebne i do czego:


Więcej informacji znajdziesz w Wikipedii MTA:

dbConnect


Zapis:

Więcej informacji znajdziesz w Wikipedii MTA:

getElementsByType


Więcej informacji znajdziesz w Wikipedii MTA:

getElementData


Więcej informacji znajdziesz w Wikipedii MTA:

dbQuery


Więcej informacji znajdziesz w Wikipedii MTA:

dbPoll


Więcej informacji znajdziesz w Wikipedii MTA:

DbFree


zapytania:
SELECT
SELECT FROM table_name WHERE table_column = ?

INSERT INTO
INSERT INTO table_name column_tablecolumn_tablecolumn_talbe VALUES ( ?, ?, ? )

UPDATE
UPDATE pojazdy SET column_name="..zmienna.."column_name="..zmienna.." WHERE column_name="..zmienna


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-21, 13:59


dudeks







Wiek: 31
Na forum: 6576 dni
Posty: 171

Piwa: 89

Respekt: 105,3
Respekt: 105,3

luki123luki123, jak ju? to
db...("UPDATE pojazdy SET column_name=?,  column_name=? WHERE column_name=?"zmiennazmiennazmienna)


Nie ucz z?ych nawyk?w, potem b?dzie p?acz "omg eskjuel ind?ekszyn mi tu zrobili...". Co prawda przed wszystkim to nie zabezpieczy, ale lepiej mie? to ni? nic.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-21, 14:02


marcin778

Krytyk serwerów MTA






Wiek: 24
Na forum: 4149 dni
Posty: 2268
Nick w MP: Marcineg

Piwa: 4662

Respekt: 1436,8
Respekt: 1436,8

dudeks, Rozumiem ze "column_name" mam zamieni? na nazwy kolumn.

Podpis
Moje prace: https://www.youtube.com/c...MuaWGHPp1mhlGnw

-- obecnie
-- obecnie
-- dawniej
-- dawniej
-- dawniej
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-21, 14:14


dudeks







Wiek: 31
Na forum: 6576 dni
Posty: 171

Piwa: 89

Respekt: 105,3
Respekt: 105,3

Tak. Og?lnie je?eli tworzysz jaki? system pojazd?w na bazie danych to najlepiej Ci b?dzie utworzy? tabel?, powiedzmy 'vehicles' z kolumnami:

ID z auto_increment
model
pozycja
inne, jakie potrzebujesz.

ID z auto_increment b?dzie Ci nadawa?o nowe ID pojazdu z ka?dym kolejnym zapytaniem typu INSERT.
U?atwi Ci to znacz?co spraw? przy nast?pnym usuwaniu czy zapisywaniu konkretnego auta.

Postaw piwo autorowi tego posta
 

 
Tagi: pierwszy :: zapis :: 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 » Pierwszy zapis na sql 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