Θέμα με τονισμένα φωνήεντα σε query

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από philos » 07 Σεπ 2013 23:28

Στην προσπάθειά μου να εισάγω σε έναν πίνακα (MySQL) κάποιες 1000δες εγγραφές, αντιμετωπίζω το ακόλουθο πρόβλημα.
Καταρχήν προτού εισαχθεί μια εγγραφή, το php script ελέγχει αν υπάρχει ήδη, χρησιμοποιώντας το ακόλουθο query. Αν υπάρχει η εγγραφή, το script δεν την εισάγει.

Κώδικας: Επιλογή όλων

$this->registry->db->query_first("
				SELECT *
				FROM tablename
				WHERE name = '" . $this->registry->db->escape_string($name) . "'
			);
... όμως διαπίστωσα ότι υπάρχει θέμα με λέξεις που μοιάζουν και διαφέρουν σε... τονισμένο φωνήεν! :roll:
Συγκεκριμένα, τα ακόλουθα ζευγάρια λέξεων, εντοπίζονται ως ίδια:
(Πάρου - Πόρου)
(Μήλου - Μώλου)

Τι μπορώ να κάνω γι' αυτό; Οι λέξεις δεν είναι εντελώς ίδιες, κι όμως εντοπίζονται ως τέτοιες.
Να σημειώσω ότι αρχικά αντιμετώπιζα πρόβλημα με το κεφαλαίο άλφα με τόνο (αντί για "Ά" καταχωρούσε " ' ") και το έλυσα κάνοντας:

Κώδικας: Επιλογή όλων

 $name = iconv('', "ISO-8859-7", $name);
Τέλος να πω ότι και η μηχανή αναζήτησης εντοπίζει τις λέξεις ως ίδιες (πχ αν ψάξεις για Πάρου θα σου δώσει αποτέλεσμα Πάρου ΚΑΙ Πόρου).
Ευχαριστώ! :)

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από cordis » 08 Σεπ 2013 13:32

γιατί δεν τα κάνεις UTF-8 και τα κάνεις ISO-8859-7;
δοκίμασε και το set names 'utf8' εαν τα κάνεις utf-8, αλλά κοίτα να είναι και το πίνακας 'utf8' και το πεδίο που κάνεις εισαγωγή το text.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από ThyClub » 08 Σεπ 2013 13:52

Συγκεκριμένα, τα ακόλουθα ζευγάρια λέξεων, εντοπίζονται ως ίδια:
(Πάρου - Πόρου)
(Μήλου - Μώλου)
!!! Ούτε η Google τέτοιες προτάσεις!!! :D

Ναι κάνε αυτά που είπε ο Γιάννης. Δλδ οι πίνακες στην βάση σου να είναι utf8 και στην σύνδεση κάνε "SET NAMES 'utf8'"

Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από philos » 08 Σεπ 2013 15:22

Η βάση δεδομένων δεν είναι σε UTF-8. :( ISO-8859-7 δέχεται κανονικά (αυτό είναι και το charset της ιστοσελίδας άλλωστε).
Να σημειώσω ότι τα δεδομένα εισάγονται από αρχείο CSV.

Έκανα διάφορες προσπάθειες με την iconv (για μετατροπή του $name σε UTF-8 αλλά τα αποθηκεύει αλαμπουρνέζικα). Επίσης δοκίμασα να αποθηκεύσω το CSV ως UTF-8, πάλι χωρίς αποτέλεσμα.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από geomagas » 08 Σεπ 2013 16:47

Ενώ οι ιστοσελίδες είναι "σε charset X", η MySQL υποστηρίζει collations και όχι charsets. Βέβαια τα collations υπονοούν charset, αλλά για να ισχύει το ISO-8859-7 θα πρέπει το collation που έχεις ορίσει στη ΒΔ σου να είναι greek_general_ci.

Σημείωσε ότι υπάρχουν τρεις διαφορετικές ρυθμίσεις για το collation: per-server, per-DB και per-table. Σιγουρέψου ότι είναι όλα έτσι όπως τα θέλεις.

Έπειτα εξέτασε την πηγή των δεδομένων σου (το CSV). Σε τι charset είναι αποθηκευμένο; Αν διαφέρει από αυτό της php και της βάσης, χρησιμοποίησε την iconv. Αλλιώς δεν νομίζω να υπάρχει λόγος να περιπλέκεις τα πράγματα.

Η MySQL θεωρεί χαρακτήρες ισότιμους σε ένα collation, αλλά μόνο όσον αφορά τους τόνους, και τα κεφαλαία/μικρά αν το collation είναι ......_ci (case insensitive).
Τα ά=ό και ή=ώ δεν δικαιολογούνται στο select, εκτός αν τα δεδομένα σου έχουν εισαχθεί ήδη λάθος κατά το import από το CSV. Γνώμη μου, εκεί πρέπει να ψάξεις.

Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από philos » 08 Σεπ 2013 22:34

Η αλήθεια είναι ότι τα έχω κάνει μαντάρα με το collation.
Συγκεκριμένα, όταν πρωτοεγκατέστησα το vbulletin, είχε οριστεί ως collation (δε θυμάμαι πως), το latin1_swedish_ci.
Όταν εγκατέστησα την δοκιμαστική βάση στο WAMP, όρισα τη βάση ως utf8_general_ci κατά τον ορισμό της.
Οπότε το πραγματικό collation είναι latin1.

Δε νομίζω να φταίει το CSV. Το πρόβλημα εμφανίζεται ακόμα και όταν πάω να εισάγω την εγγραφή από HTML φόρμα με PHP. Μάλιστα μιλάμε για default λειτουργία του vbulletin (Social Groups) + θέμα στον default data manager (έλεγχος διπλών εγγραφών). Δεν έχω πειράξει κάτι εκεί (όσον αφορά την εισαγωγή με HTML φόρμα). Απλά το πρόβλημα δεν ήταν εύκολο να διαπιστωθεί καθώς είναι εξαιρετικά σπάνιο να χρησιμοποιηθεί τόσο παρόμοια λέξη.

Οπότε μάλλον θα πρέπει να τροποποιήσω το query στον έλεγχο διπλοεγγραφών που κάνει τον έλεγχο. :hmm:

Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από philos » 08 Σεπ 2013 22:46

Νέος εντοπισμός ως διπλοεγγραφή:
(Άμφισσας - Άντισσας)

Επίσης το σύστημα κάνει = τη φράση στο query όχι LIKE.
Πολύ περίεργο :(

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από geomagas » 08 Σεπ 2013 23:57

Πριν απ' όλα, μία σημείωση: Μόλις είδα ότι ο cordis παραπάνω αναφέρεται και στα πεδία της ΒΔ, και έχει δίκιο. Άρα, εκτός από per-server, per-DB και per-table έχουμε και ρύθμιση per-field. Έτσι, για τα "πρακτικά".
philos έγραψε:Η αλήθεια είναι ότι τα έχω κάνει μαντάρα με το collation.
Συγκεκριμένα, όταν πρωτοεγκατέστησα το vbulletin, είχε οριστεί ως collation (δε θυμάμαι πως), το latin1_swedish_ci.
Déjà vu...
philos έγραψε:Όταν εγκατέστησα την δοκιμαστική βάση στο WAMP, όρισα τη βάση ως utf8_general_ci κατά τον ορισμό της.
Οπότε το πραγματικό collation είναι latin1.
Με μπέρδεψες τώρα. Μάλλον εννοείς codepage latin1 και collation latin1_swedish_ci. Ενώ η δοκιμαστική έχει utf8/utf8_general_ci. Σωστά;
Εσύ όμως που έχεις το πρόβλημα, στη δοκιμαστική ή στην productive;
Και το codepage της php, τελικά, ποιο είναι;
philos έγραψε:Δε νομίζω να φταίει το CSV.
Δεν χάνεις τίποτα να δοκιμάσεις

Κώδικας: Επιλογή όλων

echo mb_detect_encoding(file_get_contents($csv)); 
philos έγραψε:Το πρόβλημα εμφανίζεται ακόμα και όταν πάω να εισάγω την εγγραφή από HTML φόρμα με PHP. Μάλιστα μιλάμε για default λειτουργία του vbulletin (Social Groups) + θέμα στον default data manager (έλεγχος διπλών εγγραφών). Δεν έχω πειράξει κάτι εκεί (όσον αφορά την εισαγωγή με HTML φόρμα). Απλά το πρόβλημα δεν ήταν εύκολο να διαπιστωθεί καθώς είναι εξαιρετικά σπάνιο να χρησιμοποιηθεί τόσο παρόμοια λέξη.
Δοκίμασες να κάνεις insert από phpmyadmin; Σε τέτοια περίπτωση, πως αποθηκεύονται τα δεδομένα σου;
philos έγραψε:Οπότε μάλλον θα πρέπει να τροποποιήσω το query στον έλεγχο διπλοεγγραφών που κάνει τον έλεγχο. :hmm:
...Και πώς να το κάνεις; Μια χαρά query είναι... Όπως πρέπει να είναι.
philos έγραψε:Νέος εντοπισμός ως διπλοεγγραφή:
(Άμφισσας - Άντισσας)

Επίσης το σύστημα κάνει = τη φράση στο query όχι LIKE.
Πολύ περίεργο :(
Δεν έχει να κάνει. Τα collations δουλεύουν και με το =. Κυρίως με αυτό.
Για ένα Ελληνικό ai/ci collation πχ, ισχύει 'Κώστας '= 'κώστας' = 'Κωστας' = 'κωστασ'.
Αλλά όχι 'φυλή' = 'φιλί' (πόσο μάλλον το παράδειγμά σου...).

Υποπτεύομαι ότι η βάση σου αποθηκεύει Ελληνικά αλλά στο = συγκρίνει... Σουηδικά!
Κάνε όλα τα collations/codepages τα ίδια/αντίστοιχα (σε ΒΔ, php, csv).

Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από philos » 09 Σεπ 2013 00:48

Λοιπόν, για να τα πάρουμε με τη σειρά, προτείνω να ασχοληθούμε πρώτα με την default html φόρμα εισαγωγής εγγραφών.

Όρισα το utf8_unicode_ci* στα ακόλουθα μέρη του phpmyadmin (εκτός από τον πίνακα που ήταν ήδη). Παραθέτω screenshots.

Τι άλλο πρέπει να αλλάξω και από που; (χρησιμοποιώ Wamp).
Στο php.ini λέει:

Κώδικας: Επιλογή όλων

; The default character set code-page to use when passing strings to and from COM objects.
; Default: system ANSI code page
;com.code_page=
... να αλλάξω κάποια τιμή; Σε τι;

Να σημειώσω ότι το πρόβλημα εμφανίζεται και στο "κανονικό" site (Server) και στο localhost (Wamp).

* sorry για το λάθος στα προηγούμενα posts, αλλά ο πίνακας λέει utf8_unicode_ci, όχι utf8_general_ci (εδώ να σημειώσω ότι άλλοι πίνακες λένε το ένα και άλλοι το άλλο).
Συνημμένα
localhost1.png
(9.39 KiB) Μεταφορτώθηκε 137 φορές
localhost2.png
(8.36 KiB) Μεταφορτώθηκε 142 φορές
localhost3.png
(7.73 KiB) Μεταφορτώθηκε 132 φορές

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από geomagas » 09 Σεπ 2013 02:10

philos έγραψε:Λοιπόν, για να τα πάρουμε με τη σειρά, προτείνω να ασχοληθούμε πρώτα με την default html φόρμα εισαγωγής εγγραφών.
Για να τα πάρουμε με τη σειρά, θα πρέπει να αρχίσουμε με τη ΒΔ. Πράγμα το οποίο κάνεις κι εσύ παρακάτω.
philos έγραψε: Όρισα το utf8_unicode_ci* στα ακόλουθα μέρη του phpmyadmin (εκτός από τον πίνακα που ήταν ήδη). Παραθέτω screenshots.

Τι άλλο πρέπει να αλλάξω και από που; (χρησιμοποιώ Wamp).
Στο php.ini λέει:

Κώδικας: Επιλογή όλων

; The default character set code-page to use when passing strings to and from COM objects.
; Default: system ANSI code page
;com.code_page=
... να αλλάξω κάποια τιμή; Σε τι;
Όχι, αυτό αφορά κάτι πολύ συγκεκριμένο, που δεν μας ενδιαφέρει.
philos έγραψε: Να σημειώσω ότι το πρόβλημα εμφανίζεται και στο "κανονικό" site (Server) και στο localhost (Wamp).

* sorry για το λάθος στα προηγούμενα posts, αλλά ο πίνακας λέει utf8_unicode_ci, όχι utf8_general_ci (εδώ να σημειώσω ότι άλλοι πίνακες λένε το ένα και άλλοι το άλλο).
Οπότε να υποθέσω ότι οι πίνακες που συμμετέχουν στο select είναι σε utf8_unicode_ci. Καλό θα ήταν πάντως να κρατήσεις ένα collation/charset για όλους.

Για να τα πάρουμε ένα-ένα θα σου έλεγα να αφήσεις για λίγο το interface και να πας από phpmyadmin.
Στη θέση σου θα άδειαζα τον πίνακα και θα έβαζα με το χέρι μία εγγραφή με τιμή πχ 'Άμφισσας'.
Μετά, πάλι από το phpmyadmin, θα εκτελούσα μία

Κώδικας: Επιλογή όλων

SELECT * FROM tablename WHERE name = 'Άντισσας'
Έτσι θα έβλεπα αν τα δεδομένα αποθηκεύονται σωστά και αν το collation καταλαβαίνει σωστά τις ισοδυναμίες των χαρακτήρων, χωρίς να εμπλέξω το δικό μου script.

Αν όλα πήγαιναν καλά, θα έφτιαχνα ένα μικρό script το οποίο θα εκτελούσε την ίδια select, για να δω τη διαφορά της συμπεριφοράς του.

Αν όλα ήταν καλά μέχρι εδώ, το μόνο που μένει αδοκίμαστο είναι το csv.
Που σημαίνει ότι θα πρέπει να εκτελέσεις την iconv που έχεις ήδη, με target charset UTF-8 (UTF-8//TRANSLIT θα σου πρότεινα καλύτερα) και με source charset αυτό των δεδομένων του csv (το οποίο και δεν γνωρίζω).

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από jpk » 09 Σεπ 2013 14:48

Χωρίς να είμαι μάντης και χωρίς να έχουν δοθεί περεταίρω στοιχεία εγώ θα πόνταρα ότι το πρόβλημα είναι στο:

Κώδικας: Επιλογή όλων

$this->registry->db
Τι αντικείμενο είναι το $this, τι ιδιότητα είναι το registry και τι ιδιότητα το db ; Προφανώς κάπου μεταξύ registry και db το query αλλάζει.

Αν αυτό είναι μπορείς εύκολα να δεις που τα κάνει χάλια η αρχιτεκτονική σου (ή ακόμα ποιο βαθιά το framework σου) ανάλογα τον τελικό τρόπο που γίνονται τα requests στην βάση.

(Το ότι έχεις τοποθεσία με ISO-8859-7 δεν χρειάζεται να σου πω πόσο λάθος είναι, φαντάζομαι το ξέρεις)

Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από philos » 11 Σεπ 2013 16:47

jpk έγραψε:Χωρίς να είμαι μάντης και χωρίς να έχουν δοθεί περεταίρω στοιχεία εγώ θα πόνταρα ότι το πρόβλημα είναι στο:

Κώδικας: Επιλογή όλων

$this->registry->db
Τι αντικείμενο είναι το $this, τι ιδιότητα είναι το registry και τι ιδιότητα το db ; Προφανώς κάπου μεταξύ registry και db το query αλλάζει.

Αν αυτό είναι μπορείς εύκολα να δεις που τα κάνει χάλια η αρχιτεκτονική σου (ή ακόμα ποιο βαθιά το framework σου) ανάλογα τον τελικό τρόπο που γίνονται τα requests στην βάση.

(Το ότι έχεις τοποθεσία με ISO-8859-7 δεν χρειάζεται να σου πω πόσο λάθος είναι, φαντάζομαι το ξέρεις)
Πρόκειται για αντικείμενα της μηχανής vbulletin (συγκεκριμένα στο αρχείο που ορίζει την κλάση του datamanager για τη συγκεκριμένη λειτουργία). Το query που παρέθεσα ανήκει στον datamanager και συγκεκριμένα στη συνάρτητη που κάνει verify το name που προσπαθεί ο χρήστης να αποθηκεύσει.

Λοιπόν, να πω τα εξής.
Στο phpmyadmin δε βλέπω τους ελληνικούς χαρακτήρες στους πίνακες αλλά μπερδεμένους χαρακτήρες. Αυτό δεν με απασχόλησε ποτέ αφού δεν δουλεύω με το phpmyadmin και το site παίζει κανονικά. Θα χαρώ να με πληροφορήσετε πως μπορώ να το διορθώσω, αν κάτι τέτοιο είναι πολύ απαραίτητο.
Έτσι, έχοντας στη βάση δύο εγγραφές (η μία "Πόρου" και η άλλη "Πάρου" - τις εισήγαγα απανεργοποιώντας προσωρινά τον έλεγχο που τις βγάζει διπλές), έτρεξα το ακόλουθο query:

Κώδικας: Επιλογή όλων

SELECT *
FROM `_vbsocialgroup`
WHERE name = 'Χ'
ORDER BY `_vbsocialgroup`.`groupid` DESC
LIMIT 0 , 30
... το Χ σημαίνει "Πόρου" (απλά το βλέπω έτσι στη βάση). Το query επέστρεψε 2 αποτελέσματα - δείτε τη διαφορά στο name! :arrow:

edit: επειδή κάνω paste το Χ και κατά την αποθήκευση του μηνύματος αλλάζει τους χαρακτήρες το εδώ σύστημα, μπορείτε να δείτε τις τιμές του name στο screenshot.
Όταν προσπαθήσω να κάνω SELECT με name = 'κάποια από τις δύο τιμές', τις επιστρέφει και τις δύο. Σουηδικά είναι αυτά; :o

Τι μπορούμε να κάνουμε;

Ευχαριστώ πολύ :D
Συνημμένα
query.png
(10.69 KiB) Μεταφορτώθηκε 128 φορές

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από geomagas » 11 Σεπ 2013 21:26

Το πιθανότερο είναι να έχεις εισάγει τα δεδομένα σου σε windows-1253.
Εκεί, το "ά" έχει κωδικό 220, τον ίδιο που έχει το "Ü" σε utf-8.

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από jpk » 11 Σεπ 2013 22:08

Μου πήρε κάποια ώρα να καταφέρω να επαναλάβω αυτό που σου βγαίνει αλλά τελικά τα … κατάφερα να τα μπερδέψω όπως περιγράφεις και να πάρω τα ίδια αποτελέσματα.
Αυτά που θα σου γράψω ΔΕΝ είναι λύση είναι ΜΠΑΛΩΜΑ , και όπως όλοι ξέρουμε τα μπαλώματα κάνουν πολύ κακό. Η μόνη δικαιολογία για να κάνεις μπάλωμα είναι να δουλεύεις κάπου αλλού , να το έχεις βρει έτοιμο μπροστά σου και να πρέπει να κάνεις δουλειά με αυτό. Ακόμα και έτσι θα πρέπει να τους επισημάνεις ότι αυτά είναι μπαλώματα και αργά ή γρήγορα από κάπου θα το βρουν. (Η λύση απλή και αυτονόητη , UTF-8 παντού και να θέλεις να γίνεται match το «Πάρου» και «πάρου» τότε το πεδίο utf8_general_ci αλλιώς uft8_bin).

Μπάλωμα Α.
Τα κάνεις utf8_bin στην βάση και καθάρισες . Με αυτόν τον τρόπο το «Πάρου» και «πάρου» δεν θα γίνονται match.

Μπάλωμα Β.
Ακόμα χειρότερο γιατί τρως μνήμη και χρόνο , αλλά σου φέρνει αποτέλεσμα χωρίς να αλλάξεις τίποτα (με όλα τα λάθη που έχει) σε case insensitive. Φυσικά και δεν γράφω έτσι ούτε και χρησιμοποιώ έτσι το PDO αλλά για να μην το μπερδέψω με άλλα το απλοποίησα όσο παίρνει

Κώδικας: Επιλογή όλων

<?php
$db = new PDO&#40;"mysql&#58;dbname=databaseName", "databaseUserName", "databaseUserPassword"&#41;;

/**
 * Αυτό θα γίνει true στο τέλος αν βρεθεί στην βάση case insensitive αλλιώς 
 * θα μείνει false, το $counter είναι πόσες φορές θα βρεθέι και είναι μόνο 
 * για test ότι δεν κάνει match και το Πόρου 
 */
$found = false; 
$counter = 0; 

$search = "Πάρου";
$searchIso = iconv&#40;'', "ISO-8859-7", $search&#41;;
$query = "SELECT * FROM test WHERE TXT = ?";
$statement = $db->prepare&#40;$query&#41;;
$statement->execute&#40;array&#40;$searchIso&#41;&#41;;
$result = $statement->fetchAll&#40;PDO&#58;&#58;FETCH_ASSOC&#41;;
if&#40;count&#40;$result&#41; > 0&#41;
&#123;
  foreach&#40;$result as $row&#41;
  &#123;
    if&#40;strtolower&#40;$search&#41; ==  strtolower&#40;$row&#91;"TXT"&#93;&#41;&#41;
    &#123;
      $found = true;
      $counter++;
    &#125;
  &#125;
&#125;

var_dump&#40;$counter&#41;;
?>

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Θέμα με τονισμένα φωνήεντα σε query

Δημοσίευση από dva_dev » 12 Σεπ 2013 20:03

εγώ πάλι πιστεύω ότι η βάση είναι latin1 η ιστοσελίδα windows-1253 και γίνεται χύμα αποθήκευση χωρίς να ξέρει η php ότι είναι "λάθος" codepage.
για να διορθωθεί αυτό το χάλι θα έλεγα ότι θέλει η βάση αρχικά binary conversion από Latin1 σε Greek μετά conversion σε utf8 και αλλαγή των ρυθμίσεων σε utf8 στην ιστοσελίδα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης