Autor Zpráva
Mufna
Profil
Zdravím Vás. Mám problém s řazením výsledků vyhledávání v db MySQL podle ceny. Jsem začátečník, takže to prosím berte. V db mám řádek "price" typu VARCHAR(12) - udělal jsem to tak proto, že u typu INT jsem nedokázal zařídit, aby se cena dala do db vložit a z ní následně pomocí dotazu zobrazit s mezerami - myslím tím např. 2 550 000 místo 2550000. Výsledky dotazu se mi podle ceny seřadí, ale pouze tehdy, pokud má cena stejný počet cifer - tedy např. 140 000 a 150 000 se mi seřadí OK, ale 140 000 a 50 000 už ne (50 000 je až za 140 000). Zřejmě buď potřebuji nějak ošetřit délku řetězce nebo změnit typ u "price" - ale velice rád bych zachoval to, aby se cena dala skutečně zadávat (v administraci) i s mezerami, resp. aby se třeba s mezerami zadávat nemusela, ale aby se s mezerami hlavně zobrazila !

Předem díky za každou radu !
nightfish
Profil
cenu je nutné ukládat jako číslo
veškeré formátování apod. můžeš řešit až při výpisu z databáze (+ odstranění mezer a podobných znaků při zadávání) - viz PHP funkci number_format

ideální řešení bude vyrobit si nový sloupec cílového typu (int nebo jiný), pojmenovat třeba jako price2, napsat si skript, který vezme cenu ze sloupce price, vymaže všechny nevhodné znaky (mezery apod.) a uloží do sloupce price2
až budeš mít všechno hotové, vymažeš sloupec price a price2 přejmenuješ na price
pak už jen upravíš formát výpisu cen a nějaké to vymazávání mezer při přidávání ceny v administraci

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