Autor Zpráva
midlan
Profil
Ahoj. Mohl by mi někdo poradit jaký mám nastavit collate na vícejazyčném webu? Existuje nějaký univerzální pro všechny jazyky? Dík.
jenikkozak
Profil
midlan:
Existuje nějaký univerzální pro všechny jazyky?
Jistě že ne. Vězmeš-li si např. češtinu, dvojice znaků „c“ a „h“ je brána jako „ch“ a řazena mezi h a i, v angličtině patří pod „c“.
Pro každý jazyk je třeba nastavit vlastní řazení.
midlan
Profil
jenikkozak:
Jistě že ne.
Pak mi to taky došlo. Jak tedy určím dynamicky, že se jednou bude řadit tak a podrůhé onak?
Kajman
Profil
midlan:
Jak tedy určím dynamicky, že se jednou bude řadit tak a podrůhé onak?

Zavisí na tom, jak jste si ukládání překladů udělal. Někdy stačí nastavit collation na sloupci, někdy musíte dát odpovídající collation podle jazyka přímo do sql dotazu.
midlan
Profil
Kajman:
Do databáze se neukládání nic dvakrát. Všechny systémové věci jako popisky do menu atd. se překládají až v php. Jde mi spíš o řazení dat uživatelů.
Kajman
Profil
Odpověď je stejná. Buď nastavíte collation u sloupce, pokud jsou v něm hodnoty jen v jednom jazyce. Nebo přidáte takové collation, které vyžadujete, přímo do dotazu. Viz. odkázaný článek.
midlan
Profil
Kajman:
Buď nastavíte collation u sloupce, pokud jsou v něm hodnoty jen v jednom jazyce. Nebo přidáte takové collation, které vyžadujete, přímo do dotazu.
Aha takže druhá možnost, protože data v jednotlivých sloupcích budou smíšených jazyků. Jestli jsem to z článku vypozoroval správně budu řadit tedy nějak takhle:
<?php
"SELECT ... ORDER BY sloupec1 COLLATION $collation, sloupec2 COLLATION $collation, sloupec3 COLLATION $collation";

Nejlepší by bylo kdyby šlo nastavit collation ne začátku každého připojení, to asi nepůjde že :(
Kajman
Profil
Collation sezení nemá v order by vlív.

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: