Autor Zpráva
niron
Profil *
Ahoj, nevím si rady a tak prosím o radu.

Mám zhruba takovýto skript:

while ($a = MySQL_Fetch_Array($q)){    //cyklus výpisu
 $jmeno=$a["jmeno"];            //výpočet cen
 $jablek=$a["jablek"]*1000;
 $hrusek=$a["hrusek"]*50;
 $celkem=$hrusek+$jablek;

Vytahám tedy data z db, a teď bych je potřeboval setřídit vzestupně podle hodnoty $celkem, ale nějak nevím jak na to... zkoušel jsem fci usort(); ale to mi nefungovalo.
Díky za rady.
Taps
Profil
niron:
a jak jsi konkrétně použitl funkci usort?
Keeehi
Profil
niron:
A proč to neděláš přímo v dotazu?
SELECT * FROM tabulka ORDER BY jablek * 1000 + hrusek * 50;
niron
Profil *
Taps:
Nepovedlo se mi to naroubovat syntakticky správně, zkoušel jsem např.:
while ($a = usort(MySQL_Fetch_Array($q)))


Keehi:
Tohle řešení funguje dokonale, děkuji mnohokrát :-)
Keeehi
Profil
niron:
Nepovedlo se mi to naroubovat syntakticky správně, zkoušel jsem např.:
while ($a = usort(MySQL_Fetch_Array($q)))
Tohle nefunguje proto, že mysql_fetch_array ti při každém zavolání vrátí jeden řádek a ne celé pole řádků. Musel bys mít něco jako:
while ($radek = MySQL_Fetch_Array($q)){
    $tabulka[] =$radek;
}
usort($tabulka);
Toto není kompletní kód! Slouží jen pro ilustraci toho, že funce usort se musí provádět až po načtení všech hodnot z databáze. Použít řazení už přímo v databázi je však mnohem výhodnější.

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: