Ahoj, nevíte někdo prosím jak seřadit záznamy z databáze podle ceny? Použil jsem ORDER BY CENA ASC ale neřadí to správně, sloupec s textem to řadí bezproblémově... už do toho koukám asi hodinu a jsem z toho úplně v lese :( Díky
Ahoj, nevíte někdo prosím jak seřadit záznamy z databáze podle ceny? Použil jsem ORDER BY CENA ASC ale neřadí to správně, sloupec s textem to řadí bezproblémově... už do toho koukám asi hodinu a jsem z toho úplně v lese :( Díky
Nechceš sem poslat tvar tvého selectu? Máš sloupec v databázi ve správném formátu?
No, bez výpisu aspoň časti dát z DB ti ťažko niekto poradí, keď nevieme, ako vyzerá výstup. Prípadne aj SQL príkaz, lebo ORDER BY cena ASC by malo bez problémov fungovať.
Vidim to na blbe nastaveny sloupec CENA v db.... vsadil bych se, ze tam mas (var)char .... zmen to na DECIMAL
K hodnote musis pristupovat jako k cislu, ne jak k retezci
Příkaz mam takový:
Čísla v db ve sloupci CENA jsou takto: 12.50, 10.80, 62.50, 33.50 atdKód:$q = mysql_query("SELECT * FROM sklad WHERE kat='1' ORDER BY cena ASC "); while($v=mysql_fetch_array($sql)) { echo $v['cena'].'<br>'; }
A v jakém typu máš sloupec cena v DB? Zkus si ty čísla jen tak cvičně přespat na celá. Jinak to vypadá v pořádku.
Tak to nedávej jako decimal ale int
Dal jsem INT a všechny čísla se zaokrouhlily na celé čísla, tzn přišel jsem o desetiny. Do db nejde ani desetinná tečka ani čárka napsat
Špatně jsem si to přečetl, myslel jsem že se chceš zbavit těch desetin.
A čo takto DOUBLE s 2 Decimals? Malo by to fungovať, aspoň cez phpmyadmin to zoraďuje korektne.
EDIT: Moja chyba, nerieši to problém so zobrazovaním čísla ...
To už je otázka formátování, ne databáze.
Převeďte ceny z řetězců na float a PHP přestane zobrazovat desetinné nuly.
Jinak je vaším přítelem také funkce number_format().Kód:$number = (float)$number;
Tak jsem narychlo vygooglil toto řešení.... echo str_replace('.00','',$v['cena']); které vrátí stejný výsledek jako FLOAT který jsem bohužel neznal.
Nyní už je vše správně. Pokud by to někdo někdy potřeboval, tak sloupec s cenou nastavit na DECIMAL (diky winexec) a výpis prohnat přes FLOAT (díky Martin Schlemmer)
A taky díky všem ostatním za snahu