Προς το περιεχόμενο

Παράξενο θέμα με utf-8 data


bikey77

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω μια βάση σε utf8 και τον πίνακα suburbs όπου αποθηκεύω περιοχές της Αθήνας χωρισμένες σε 2 ζώνες (Ζώνη Α, Ζώνη Β).

 

Οι περιοχές εμφανίζονται σε ένα dropdown στη φόρμα παραγγελίας για να επιλέξει ο πελάτης την περιοχή του.

Το query μου είναι:

 

select * from suburbs order by zone asc, suburb asc, απλούστατο.

 

Και οι περιοχές εμφανίζονται ως εξής:

 

544 - ΖΩΝΗ Α - Κρυονέρι

543 - ΖΩΝΗ Α - Κηφισιά

548 - ΖΩΝΗ Α - Νέα Ερυθραία

549 - ΖΩΝΗ Α - Παλλήνη

550 - ΖΩΝΗ Α - Παπάγου

568 - ΖΩΝΗ Α - Περιστέρι

552 - ΖΩΝΗ Α - Πεύκη

551 - ΖΩΝΗ Α - Πεντέλη

569 - ΖΩΝΗ Α - Πετρούπολη

553 - ΖΩΝΗ Α - Ροδόπολη

554 - ΖΩΝΗ Α - Σταμάτα

555 - ΖΩΝΗ Α - Φιλοθέη

570 - ΖΩΝΗ Α - Χαϊδάρι

556 - ΖΩΝΗ Α - Χαλάνδρι

567 - ΖΩΝΗ Α - Χαλκηδόνα

557 - ΖΩΝΗ Α - Χολαργός

571 - ΖΩΝΗ Α - Ψυχικό

546 - ΖΩΝΗ Α - Μαρούσι

547 - ΖΩΝΗ Α - Μελίσσια

565 - ΖΩΝΗ Α - Θρακομακεδόνες

564 - ΖΩΝΗ Α - Ζεφύρι

542 - ΖΩΝΗ Α - Ηράκλειο

531 - ΖΩΝΗ Α - Αγία Παρασκευή

558 - ΖΩΝΗ Α - Αγία Βαρβάρα

559 - ΖΩΝΗ Α - Αγιοι Ανάργυροι

532 - ΖΩΝΗ Α - Αγιος Στέφανος

560 - ΖΩΝΗ Α - Αιγάλεω

534 - ΖΩΝΗ Α - Ανθούσα

535 - ΖΩΝΗ Α - Ανοιξη

561 - ΖΩΝΗ Α - Ανω Λιόσια

562 - ΖΩΝΗ Α - Αχαρνές (Μενίδι)

536 - ΖΩΝΗ Α - Βριλήσσια

537 - ΖΩΝΗ Α - Γέρακας

563 - ΖΩΝΗ Α - Γαλάτσι

538 - ΖΩΝΗ Α - Γλυκά Νερά

540 - ΖΩΝΗ Α - Δροσιά

539 - ΖΩΝΗ Α - Διόνυσος

541 - ΖΩΝΗ Α - Εκάλη

545 - ΖΩΝΗ Α - Λυκόβρυση

566 - ΖΩΝΗ Α - Ιλιον

584 - ΖΩΝΗ Β - Καβούρι

585 - ΖΩΝΗ Β - Καισαριανή

592 - ΖΩΝΗ Β - Καλλίπολη

586 - ΖΩΝΗ Β - Καλλιθέα

593 - ΖΩΝΗ Β - Καμίνια

594 - ΖΩΝΗ Β - Καστέλα

587 - ΖΩΝΗ Β - Νέα Σμύρνη

588 - ΖΩΝΗ Β - Παλαιό Φάληρο

589 - ΖΩΝΗ Β - Υμηττός

582 - ΖΩΝΗ Β - Ζωγράφου

583 - ΖΩΝΗ Β - Ηλιούπολη

573 - ΖΩΝΗ Β - Αργυρούπολη

590 - ΖΩΝΗ Β - Αγία Σοφία

591 - ΖΩΝΗ Β - Αγιος Βασίλειος

533 - ΖΩΝΗ Β - Αγιος Δημήτριος(Μπραχάμι)

572 - ΖΩΝΗ Β - Αλιμος

595 - ΖΩΝΗ Β - Ανω Γλυφάδα

578 - ΖΩΝΗ Β - Βύρωνας

574 - ΖΩΝΗ Β - Βάρη

575 - ΖΩΝΗ Β - Βάρκιζα

576 - ΖΩΝΗ Β - Βούλα

577 - ΖΩΝΗ Β - Βουλιαγμένη

579 - ΖΩΝΗ Β - Γλυφάδα

580 - ΖΩΝΗ Β - Δάφνη

581 - ΖΩΝΗ Β - Ελληνικό

 

Δηλαδή, οι περιοχές ξεκινούν από το Κ προς τα κάτω και μετά ξανά από το Α. Κοντεύει να με τρελάνει το θέμα, έχει κανείς μια λογική εξήγηση?

 

Περιβάλλον PHP 5.2.6, MySQL 5.0.51a, σελίδες, βάση και πίνακες όλα σε utf8.

Δημοσ.

Τι collation εφαρμόζεται πάνω στο column αυτό; Ισχύει το collation στο column suburb (αν έχεις), ή αλλιώς στο table (αν έχεις), ή αλλιώς το default της database.

 

Έχω την εντύπωση ότι μπορείς να το δεις και interactively δίνοντας

 

>SHOW FULL COLUMNS FROM suburbs

Δημοσ.

Τι collation εφαρμόζεται πάνω στο column αυτό; Ισχύει το collation στο column suburb (αν έχεις), ή αλλιώς στο table (αν έχεις), ή αλλιώς το default της database.

 

Έχω την εντύπωση ότι μπορείς να το δεις και interactively δίνοντας

 

>SHOW FULL COLUMNS FROM suburbs

 

 

 

>CREATE TABLE `suburbs` (
 `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
 `zone` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
 `suburb` VARCHAR(100) COLLATE utf8_general_ci NOT NULL,
 `distance` FLOAT(9,2) DEFAULT NULL,
 PRIMARY KEY (`id`))TYPE=MyISAM;

COMMIT;

/* Data for the `suburbs` table  (Records 1 - 65) */
INSERT INTO `suburbs` (`id`, `zone`, `suburb`, `distance`) VALUES 
 (531, 'ΖΩΝΗ Α', 'Αγία Παρασκευή', NULL),
 (532, 'ΖΩΝΗ Α', 'Αγιος Στέφανος', NULL),
 (533, 'ΖΩΝΗ Β', 'Αγιος Δημήτριος(Μπραχάμι)', NULL),
 (534, 'ΖΩΝΗ Α', 'Ανθούσα', NULL),
 (535, 'ΖΩΝΗ Α', 'Ανοιξη', NULL),
 (536, 'ΖΩΝΗ Α', 'Βριλήσσια', NULL),
 (537, 'ΖΩΝΗ Α', 'Γέρακας', NULL),
 (538, 'ΖΩΝΗ Α', 'Γλυκά Νερά', NULL),
 (539, 'ΖΩΝΗ Α', 'Διόνυσος', NULL),
 (540, 'ΖΩΝΗ Α', 'Δροσιά', NULL),
 (541, 'ΖΩΝΗ Α', 'Εκάλη', NULL),
 (542, 'ΖΩΝΗ Α', 'Ηράκλειο', NULL),
 (543, 'ΖΩΝΗ Α', 'Κηφισιά', NULL),
 (544, 'ΖΩΝΗ Α', 'Κρυονέρι', NULL),
 (545, 'ΖΩΝΗ Α', 'Λυκόβρυση', NULL),
 (546, 'ΖΩΝΗ Α', 'Μαρούσι', NULL),
 (547, 'ΖΩΝΗ Α', 'Μελίσσια', NULL),
 (548, 'ΖΩΝΗ Α', 'Νέα Ερυθραία', NULL),
 (549, 'ΖΩΝΗ Α', 'Παλλήνη', NULL),
 (550, 'ΖΩΝΗ Α', 'Παπάγου', NULL),
 (551, 'ΖΩΝΗ Α', 'Πεντέλη', NULL),
 (552, 'ΖΩΝΗ Α', 'Πεύκη', NULL),
 (553, 'ΖΩΝΗ Α', 'Ροδόπολη', NULL),
 (554, 'ΖΩΝΗ Α', 'Σταμάτα', NULL),
 (555, 'ΖΩΝΗ Α', 'Φιλοθέη', NULL),
 (556, 'ΖΩΝΗ Α', 'Χαλάνδρι', NULL),
 (557, 'ΖΩΝΗ Α', 'Χολαργός', NULL),
 (558, 'ΖΩΝΗ Α', 'Αγία Βαρβάρα', NULL),
 (559, 'ΖΩΝΗ Α', 'Αγιοι Ανάργυροι', NULL),
 (560, 'ΖΩΝΗ Α', 'Αιγάλεω', NULL),
 (561, 'ΖΩΝΗ Α', 'Ανω Λιόσια', NULL),
 (562, 'ΖΩΝΗ Α', 'Αχαρνές (Μενίδι)', NULL),
 (563, 'ΖΩΝΗ Α', 'Γαλάτσι', NULL),
 (564, 'ΖΩΝΗ Α', 'Ζεφύρι', NULL),
 (565, 'ΖΩΝΗ Α', 'Θρακομακεδόνες', NULL),
 (566, 'ΖΩΝΗ Α', 'Ιλιον', NULL),
 (567, 'ΖΩΝΗ Α', 'Χαλκηδόνα', NULL),
 (568, 'ΖΩΝΗ Α', 'Περιστέρι', NULL),
 (569, 'ΖΩΝΗ Α', 'Πετρούπολη', NULL),
 (570, 'ΖΩΝΗ Α', 'Χαϊδάρι', NULL),
 (571, 'ΖΩΝΗ Α', 'Ψυχικό', NULL),
 (572, 'ΖΩΝΗ Β', 'Αλιμος', NULL),
 (573, 'ΖΩΝΗ Β', 'Αργυρούπολη', NULL),
 (574, 'ΖΩΝΗ Β', 'Βάρη', NULL),
 (575, 'ΖΩΝΗ Β', 'Βάρκιζα', NULL),
 (576, 'ΖΩΝΗ Β', 'Βούλα', NULL),
 (577, 'ΖΩΝΗ Β', 'Βουλιαγμένη', NULL),
 (578, 'ΖΩΝΗ Β', 'Βύρωνας', NULL),
 (579, 'ΖΩΝΗ Β', 'Γλυφάδα', NULL),
 (580, 'ΖΩΝΗ Β', 'Δάφνη', NULL),
 (581, 'ΖΩΝΗ Β', 'Ελληνικό', NULL),
 (582, 'ΖΩΝΗ Β', 'Ζωγράφου', NULL),
 (583, 'ΖΩΝΗ Β', 'Ηλιούπολη', NULL),
 (584, 'ΖΩΝΗ Β', 'Καβούρι', NULL),
 (585, 'ΖΩΝΗ Β', 'Καισαριανή', NULL),
 (586, 'ΖΩΝΗ Β', 'Καλλιθέα', NULL),
 (587, 'ΖΩΝΗ Β', 'Νέα Σμύρνη', NULL),
 (588, 'ΖΩΝΗ Β', 'Παλαιό Φάληρο', NULL),
 (589, 'ΖΩΝΗ Β', 'Υμηττός', NULL),
 (590, 'ΖΩΝΗ Β', 'Αγία Σοφία', NULL),
 (591, 'ΖΩΝΗ Β', 'Αγιος Βασίλειος', NULL),
 (592, 'ΖΩΝΗ Β', 'Καλλίπολη', NULL),
 (593, 'ΖΩΝΗ Β', 'Καμίνια', NULL),
 (594, 'ΖΩΝΗ Β', 'Καστέλα', NULL),
 (595, 'ΖΩΝΗ Β', 'Ανω Γλυφάδα', NULL);

COMMIT;

Δημοσ.

Δεν βλέπω το λόγο να γίνεται αυτό που σου συμβαίνει. Η λάθος ταξινόμηση των αποτελεσμάτων γίνεται στη MySql (δοκίμασες δλδ το query κατευθείαν στη βάση) ή έτσι τα βλέπεις στη σελίδα σου (οπότε δε μπορούμε να αποκλείσουμε ότι κάτι γίνεται στην PHP και χαλάει το γλυκό);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...