Szerző Téma: SQL sorszám  (Megtekintve 1014 alkalommal)

SQL sorszám
« Dátum: 2013. augusztus 28. - 22:49:26 »
0 Show voters
Sziasztok!
Dolgozok egy jármûrendszeren(mysql). Úgy oldottam meg, hogy mikor betölti az autókat, mysql-be lementi a létrehozott ID-t(hogy ne legyen eltolódás meg ilyesmi) egy idx nevû oszlopba.
Ez a lekérdezés egy for ciklusban hajtódik végre. Az lenne a kérdésem, hogy hogyan lenne lehetõségem lekérni az sor ID-jét? Az AutoIncrementes oszlopomból lehetséges, hogy a játékban törlök, ezért az alapján nem tudom megcsinálni.
 
UPDATE kocsik SET idx = kocsiid WHERE ???

 
tehát úgy lenne jó, hogyha a WHERE után a for ciklus változóját tudnám írni, valahogy így:
 
format(query, sizeof(query), \"UPDATE kocsik SET idx = kocsiid WHERE sorszam = %i\", idx);

 
Az idx a for ciklusom változója.
Köszönöm a válaszokat!

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
SQL sorszám
« Válasz #1 Dátum: 2013. augusztus 28. - 22:52:44 »
0 Show voters
Én jármû rendszerben sosem törlök, csak elteleportálom az autót ki az óceánba, ezzel elkerülhetõek a hibák.

SQL sorszám
« Válasz #2 Dátum: 2013. augusztus 28. - 22:58:52 »
0 Show voters
Egyszerû megoldani pedig. Gondolkozzatok. Mikor létrehozod a kocsit lesz 1 idje mysql-ben és 1 tömbben eltárolod péld, hogy ... ig id-jû kocsinak mi az idje. Majd mikor elmented a kocsikat üríted a tömböt(ahol tárolod a kocsikhoz az sql idt) a mentések után, és mikor betöltés van akkor ... id-re betöltöd ... mysql idt és kész.
Amúgy mysql_insert_id() funkció való erre.
« Utoljára szerkesztve: 2013. augusztus 28. - 23:10:45 írta lackos888 »

SQL sorszám
« Válasz #3 Dátum: 2013. augusztus 28. - 23:12:17 »
0 Show voters
A mysql_insert_id() sajnos nekem nem jó, mivel a lekérdezésem nem generál AI ID-t egyik oszlopban se(fent említettem, hogy miért hagyom azt ki).
Valami olyasmi kellene, hogy mikor elindul a for ciklus(elõtte) az ID-t(AI) be kell állítani 0-ra és minden lefutáskor egyel növelni(vagy a for ciklus változójára állítani). Csak ugye az megint UPDATE lekérdezés és ha nem adok meg egy kritériumot(WHERE) akkor az összeset állítja 0-ra.  :hmmm: :confused:
De a legjobb még mindig az lenne ha a WHERE után egy sorszámot tudnék megadni
Edit:
A sorszám lekérésére egy ilyet találtam:
 
@curRow := @curRow+1 AS row_count

 
A tesztek szerint pontosan erre lenne szükségem, de ilyen kódot életemben nem láttam, fõleg nem UPDATE lekérdezésben. Valaki elmondaná, hogyan is mûködik ez?
Edit2:
Oké, megoldottam, hogy 10 percenként kiürítem a táblát és újratöltöm a jelenlegi adatokkal.
« Utoljára szerkesztve: 2013. augusztus 29. - 11:30:39 írta dipsnark »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal