PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
probleem sortimisega MySQL-is perenime järgi
Postitaja: swingman 2011-03-21 14:47:14
Tere.

Rumal küsimus: kuidas sortida SELECT päringus nõnda, et ORDER BY perenimi kuvaks andmeid eesti tähestiku järjekorras? Vihale ajab, kui nt Änilane tuleb Aruküla ette..

Googeldamine nagu ikka mõttetu asi. Paljud sakslased/hispaanlased küsivad foorumites sedasama, kuid jäävad vastuseta.

Suurimad tänud!
RE: probleem sortimisega MySQL-is perenime järgi
Postitaja: Waher 2011-03-21 15:50:26
TSITEERITUD:
Tere.

Rumal küsimus: kuidas sortida SELECT päringus nõnda, et ORDER BY perenimi kuvaks andmeid eesti tähestiku järjekorras? Vihale ajab, kui nt Änilane tuleb Aruküla ette..

Googeldamine nagu ikka mõttetu asi. Paljud sakslased/hispaanlased küsivad foorumites sedasama, kuid jäävad vastuseta.

Suurimad tänud!


Selle nimi on collation. Väli peab olema
a) UTF-8 et talletada täpitähti korrektselt
b) Eesti tähestiku järjekorras
b) (tõenäoliselt ka) case insensitive

Ehk collation'iga: utf8_estonian_ci

Unustada ka ei tasu, et andmete talletamisel peaks siis ka MySQL ühendus olema utf-8, niisama väljadele UTF-8 määramisest ei piisa.

Viimati muudetud: 21-03-2011 15:52:03
Muutja: Waher
Põhjus: Täpsemalt

RE: probleem sortimisega MySQL-is perenime järgi
Postitaja: swingman 2011-03-21 16:06:57
Ainuke mida suutsin teha, võtsin menüüst 'operations' ja määrasin collation'iks utf8_estonian_ci. Salvestasin.
Pärast seda, kui klõpsata menüüst 'Structure' peale, siis iga välja collation'iks on ikka endiselt latin1_swedish_ci. Kuidas sellest lahti saab - suur saladus.
Mida tähendab 'MySQL ühendus peab olema utf-8'? Ma kahjuks pole Korobeinik, äkki oleks võimalik lahti seletada? Kuidas see kõlab inglise keeles?
RE: probleem sortimisega MySQL-is perenime järgi
Postitaja: asd 2011-03-21 17:36:32
mysql_set_charset('utf8', $yhendus);
RE: probleem sortimisega MySQL-is perenime järgi
Postitaja: blaa 2011-03-21 19:49:56
TSITEERITUD:

Pärast seda, kui klõpsata menüüst 'Structure' peale, siis iga välja collation'iks on ikka endiselt latin1_swedish_ci. Kuidas sellest lahti saab - suur saladus.

seal samas structure all on change veerg, ehk pliiats. Kliki vajaliku veeru pliiatsil ning avanenud lehel on võimalik valida collation.

TSITEERITUD:

Mida tähendab 'MySQL ühendus peab olema utf-8'? Ma kahjuks pole Korobeinik, äkki oleks võimalik lahti seletada? Kuidas see kõlab inglise keeles?

otsi oma koodis üles, kus sa teed mysql_select_db(...)
Kui kogemata mysql_set_charset() ei toimi php vanema versiooni tõttu, siis pane järgmised read:

mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
RE: probleem sortimisega MySQL-is perenime järgi
Postitaja: asdfdsfsdf 2011-03-21 20:50:47

PHP kood:
<?php
/**
    Autor: **************
*/
$aSettings = array('server' => 'localhost'
                  
,'user' => 'root'
                  
,'password' => ''
                  
,'database' => 'db_mta_17'
                  
,'*******' => '*******'
                 
);

@
mysql_connect($aSettings['server'], $aSettings['user'], $aSettings['password']) or die('Ei saanud ühendust andmebaasiga!');
@
mysql_select_db($aSettings['database']) or die('Andmebaasi valimine ebaõnnestus');

mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET 'UTF8'");
mysql_query("SET COLLATION_CONNECTION='utf8_estonian_ci'");
?>


Kopi peist ning kasuta seda enda ühendusfailina.
RE: probleem sortimisega MySQL-is perenime järgi
Postitaja: swingman 2011-03-22 00:07:31
Tänan teid kõiki!
Nüüd toimib.
Aitäh veelkord..

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0952389240265