Autor Zpráva
kachnak
Profil
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
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 *
$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 *
select count(*)+1 as poradi from tabulka where id<$hledaneid
kachnak
Profil
vdaka moc idem skusat.
kachnak
Profil
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
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
$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;";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0