Autor Zpráva
tommyH
Profil *
Mám tabulku s pěti řádky. V php se na ní dotazuji takto:
$dotaz = mysql_query("SELECT nazev,viditelnost,poradi,MAX(poradi) AS maxporadi,MIN(poradi) AS minporadi FROM rubriky ORDER BY poradi ASC");
Poté hodnoty z ní vypisuji pomoví cyklu While. Ale problém je v tom že vě to vypíše pouze první řádek tabulky. Nevidí někdo problém ? Díky moc
panther
Profil
tommyH:
echo mysql_num_rows($dotaz); // vrátí opravdu 5?
tommyH
Profil *
Aha, vyhodí to jen 1ku ...
tommyH
Profil *
Když vymažu toto: "MAX(poradi) AS maxporadi,MIN(poradi) AS minporadi" tak to vypíše všechny řádky takže chyba bude asi vtom, ale já vůbec netuším kde ..
Pietro
Profil
Daný dotaz obsahuje agregační funkce (manuál), díky kterým se vrací jen pouze jeden záznam (pokud není uvedena klauzule GROUP BY).
V jednom dotazu zkrátka tyto informace nedostanete.
Takže buď rozdělit na dva:
SELECT MAX(poradi) AS maxporadi, MIN(poradi) AS minporadi FROM rubriky;
SELECT nazev,viditelnost,poradi FROM rubriky ORDER BY poradi ASC;


Anebo použít poddotazy. Ty jsou ale řádově pomalejší.
tommyH
Profil *
Díky moc ! Opravdu to bylo tím. Sem vám vděčný.

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