Autor | Zpráva | ||
---|---|---|---|
kachnak Profil |
#1 · Zasláno: 19. 5. 2011, 21:36:49 · Upravil/a: kachnak
Zdravím.
Mám tabuľku v ktorej každý riadok má svoje jedinečné ID. Mám ID jedného riadku, Hľadané ID. Keď si tabuľlku zoradim od najvačšieho ID po najmenšie (ORDER BY ID DESC), tak chcem zistiť koľké ZHORA je moje hľadané ID. Robím to tak že mám cyklus: $hladaneid=526; //napríklad $x=0; $queryz=mysql_query("SELECT id FROM tabulka ORDER BY id DESC "); while(list($idporadie)=mysql_fetch_row($queryz)) { if($idporadie==$hladaneid) $vysledok=$x; $x++; } Lenže toto trvá veľmi dlho. Existuje rýchlejší spôsob ako zistiť pozíciu hľadaného čísla? (že koľké v poradí bude ZHORA?) Ďakujem |
||
_es Profil |
#2 · Zasláno: 19. 5. 2011, 21:40:55
kachnak:
„chcem zistiť koľké ZHORA je moje hľadané ID“ Na čo je niečo také užitočné? Pripadá mi to ako nadbytočné skomplikovanie aplikácie. |
||
okolojdouci Profil * |
#3 · Zasláno: 19. 5. 2011, 21:41:04
$pozice = mysql_result(mysql_query("SELECT COUNT(*) FROM tabulka WHERE ID > ".$hladaneid), 0); Něco jako plus 1 nebo mínus 1 už si určitě dořešíš. |
||
Kajman_ Profil * |
#4 · Zasláno: 19. 5. 2011, 21:41:09
select count(*)+1 as poradi from tabulka where id<$hledaneid |
||
kachnak Profil |
#5 · Zasláno: 19. 5. 2011, 21:42:42 · Upravil/a: kachnak
vdaka moc idem skusat.
|
||
kachnak Profil |
#6 · Zasláno: 19. 5. 2011, 21:44:50
sluzi to pri vyhladavani ktore ma hadze na konkretny prispevok vo fore.. strankvoanie mam po 20 a musim vypocitat na kolku stranu ma to ma hodit
|
||
pcmanik Profil |
#7 · Zasláno: 19. 5. 2011, 22:17:53
kachnak:
Fuu to nechcem vydet ten kod :D Vacsinou sa to riesi pomocou limitu a nie takto komplikovane, teda neviem ci to nema nejaky specialny vyznam, ale naozaj vacsinou sa robi strankovanie LIMIT-om a nie takto. |
||
Keeehi Profil |
#8 · Zasláno: 20. 5. 2011, 07:44:23
$stranka = (int)$_GET["stranka"]; // stránky jsou počítány od jedničky $zaznamu = 20; // počet záznamů na stránku $dotaz = "SELECT * FROM tabulka ORDER BY id DESC LIMIT ".(($stranka-1)*$zaznamu).", $zaznamu;"; |
||
Časová prodleva: 13 let
|
0