Autor Zpráva
Michal Škrabálek
Profil
Nefunguje mi korektně české řazení dat z MySQL. Pokud název sloupce začíná např. š nebo ž, ocitne se tento až na konci řazení.

Nenašel jsem funkční řešení. Většinou mají lidé problém s tím, že jakýkoliv výstup z db mají zmrvený, u mě je vše bez problémů, jen to řazení... kódování používám windows1250. Na linuxoftu jsem našel řešení tohoto problémů parametrem collate, nevím však, jak ho k tabulce v db přidat. Používám mysqladmina. Děkuji za jakoukoliv radu.
Michal Škrabálek
Profil
Tak jsem našel funkční řešení:

$poradipismenek = "0123456789AaÁáBbCcČčDdĎďEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóPpQqRrŘřSsŠšTtŤťU uÚúŮůVvWwXxYyÝýZzŽž";
ORDER BY INSTR('$poradipismenek',SUBSTRING(title,1,1)) ASC, SUBSTRING(title,2) ASC


Je to hrůzná zhůvěřilost, ale funguje. Nicméně je to takové řešení/neřešení. Určitě by to šlo lépe. Nemáte někdo tip?
Leo
Profil
Jakou mate verzi MySQL? Leo
peta
Profil *
Michal Škrabálek
www.google.com
a hledej odkazy s mysql collate , pravdepodobne mas spatne nastavenou cestinu v databazi a na dotazy. Presne tenhle problem sem resil na xatchat.sk v kazdem mem programu. Na host.sk maji databazi nastavenou na default kodovani a to je zrovna nejake nevhodne :)

konkretne to resi par radku z tohoto:
CREATE TABLE xatchat_ppxRoom5 (
id int(11) NOT NULL AUTO_INCREMENT,
line_login1 varchar(25) default NULL,
line_login2 varchar(25) default NULL,
line_text varchar(255) default NULL,
line_type int(11) default NULL,
line_date datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(id),
KEY (line_login1),
KEY (line_login2)
) TYPE=MyISAM COLLATE cp1250_general_ci;

mysql_query("SET NAMES 'cp1250'") OR die("Error: Nastav kodovani DB!".mysql_error());

a potom teda se collate uziva i primo na sql dotazy, viz
http://mm.gene.cz/
http://www.mysql.com/documentation/
(kde to druhe je pouzitelne jedine ve spolceni s googlem, jinak se v tom tezko hleda)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0