Hogyan kell egy SQL rekord sorszámát kiszámitani?
A helyzet az hogy van egy sql táblám.Vannak benne rekordok.Meg kéne állapítsam pl egy bármeik xy rekorda hogy az hanyadik a táblában de id alapján nemtom mert össze van kuszálva.Tehát ha pl van egy ien tábla hogy:
1.rekord
2.rekord
3.rekord
és én a 2. rekord számát akarom az ugye a 2 lesz.Ezt hogy tudnám megnézni vagy vvmi fügvénnyel kiszámitani?
Ennek a feladatnak nincs értelme. Az adatbázisok esetében sem az attribútumok (azaz az oszlopok), sem a rekordok (azaz a sorok) sorrendjének nincs jelentősége. Összekeverheted az oszlopokat, felcserélheted a sorokat, de az attól még pontosan ugyan az az adatbázis marad. Így arról sincs értelme beszélni, hogy melyik rekord a tizennyolcadik.
(Többféle elméleti megközelítés létezik, a Műegyetemen azt tanítják, amit itt leírtam. De a rekordok sorrendjét tudtommal más elméletek sem tekintik adatnak.)
Én azt tudom tanácsolni, hogy minden sornak adj egy azonosítót (ID) ami 1 szám lesz "auto_increment"-el hogy minden felküldött adatnak legyen egy külön értéke:
ID: 1
Tartalom: Asdasd
----
ID: 2
Tartalom: 321321
----
ID: 3
Tartalom: xyzxyz
Így lekérésnél az ID-t keresed ki és onnantól már csak annak az adatait iratod ki. :)
Pl.:
$user = mysql_query("SELECT * FROM users WHERE ID = '2'");
így a 2-es ID-vel ellátott sornak az adatait fogja kezelni.
$name = $user['Name'];
Ezzel a 2-es ID-vel ellátott sorból kiveszem a Name oszlop értékét.
Próbálkozz ezzel, sok sikert.
Remélem segítettem.
K.A.
Mégy egy kis kiegészítés.
Az ID auto increment nem jó megoldás, mert ha törölsz a táblából akár egy rekordot is, akkor már, nem azt fogja mutatni, hogy az adott rekord hanyadik a sorban.
Több lehetőséged is van.
1)
Rendezed az alapján ami alapján rendezned kell (pl primary key), majd lekérdezed, hogy hány ennél kisebb key-el rendelkező elem van a táblában. Ha megkapod, hogy mondjuk 10 akkor tudod, hogy éppen a 11. elemet vizsgálod.
2)
Azt is megteheted, hogy lekérdezed, hogy összesen hány sor van. Ha tudod, hogy egy oldalon mondjuk 5öt listázol ki és a 3. oldal 2. elemét írod ki éppen akkor az a 17. elem.
3)
Létrehozol a mysql-ben egy változót:
SET @sorszama=0;
SELECT @sorszama:=@sorszama+1 as sor
Ekkor listázáskor mindne sor kiírásánál visszakapod, hogy hanyadik sort is listázod épp.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!