stf Δημοσ. 11 Φεβρουαρίου 2011 Δημοσ. 11 Φεβρουαρίου 2011 εψαξα τα post μα δε βρήκα κατι παρόμοιο, δουλευω ενα site, php script και κανω καποιες αλλαγες.. το προβλημα που εχω ειναι: στην αναζήτηση που εχει το script οταν κανεις search με ελληνικους χαρακτηρες οι τονισμενες λέξεις και αυτες χωρις τόνο τα εμφανίζει ως διαφορετικά αποτελέσματα. προσπάθησα να πειράξω το php αρχειο του search να βλέπει τα τονισμένα γράμματα το ίδιο με αυτα χωρίς τόνο. αλλα δεν τα κατάφερα. καμια πρόταση? το σχετικό κομμάτι του php αρχειου που φαντάζομαι οτι εκει πρέπει να γίνει καποια αλλαγή ειναι: >if($text != "") { $sterm[] = $text; $sterm[0] = str_replace(" ", "", $sterm[0]); $sterm[0] = str_replace("-", "", $sterm[0]); $stermsplit = explode(" ",$sterm[0]); $stermstr = ""; if (count($stermsplit)>=1) { for($i=0;$i<count($stermsplit);$i++) { if ($stermsplit[$i] != "" && $stermsplit[$i] != "-" && $stermsplit[$i] != " ") { $stermstr.="AND A.title like '%$stermsplit[$i]%' "; } } } $stermstr .= " "; } --- προσπάθησα να βάλω ενα τέτοιο κώδικα περίπου(δοκίμασα διάφορες παραλλαγές) μεσα στο κομμάτι αυτο >{ $s = strtoupper(str_replace( array('ά','έ','ή','ί','ϊ','ΐ','ό','ύ','ϋ','ΰ','ώ','ς'), array('α','ε','η','ι','ι', 'ι', 'ο','υ','υ','υ', 'ω','σ'), $s)); } υπάρχει καποια λύση? Υ.Γ. ειναι τα πρώτα μου βήματα σε web development
_tasos Δημοσ. 11 Φεβρουαρίου 2011 Δημοσ. 11 Φεβρουαρίου 2011 Θα πρέπει να συγκρίνεις το πεδίο με τη φράση σου όπως είναι κανονικά κ όταν αφαιρέσεις τους τόνους. Το SQL Query σου θα πρέπει να σου επιστρέφει κάθε εγγραφή που ταιριάζει με την κανονική φράση ή με την ξε-τονισμένη φράση. Το SQL σου θα μπορούσε να είναι κάπως έτσι: > AND (A.title like '%$phrasi_me_tonous%' OR A.title like '%$phrasi_xwris_tonous%')
hartzoua Δημοσ. 13 Φεβρουαρίου 2011 Δημοσ. 13 Φεβρουαρίου 2011 η λύση στο πρόβλημα σου λογικά βρίσκεται εδώ http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
lion2486 Δημοσ. 17 Φεβρουαρίου 2011 Δημοσ. 17 Φεβρουαρίου 2011 Νομίζω πως η μη cast-sensitive λύση δεν λύνει το πρόβλημα αυτό... Δεν ξέρω αν η mysql υποστηρίζει τέτοια αναζήτηση... Το πρόβλημα είναι ότι υπάρχουν και μερικοί που σε μια φράση σε μερικές λέξεις βάζουν και σε άλλες δεν βάζουν τόνους. Μια ιδέα που μου ήρθε είναι να μην λαμβάνεις υπ' όψην καθόλου τους χαρακτήρες με τόνους ή να τα κάνεις όλα κεφαλαία (εαν δεν έχουν τόνους) Μόλις το δοκίμασα και την αναζήτηση σε ελληνικά την κάνει χωρίς να λαμβάνει υπ' όψην τον τόνο, επίσης με προβληματίζει τώρα ότι έχω πρωτεύον κλειδί δεν μπορώ να έχω εγγραφές με και χωρίς τόνο, τις βλέπει σαν ίδιες! (έβαλα charset: greek -- ISO 8859-7 Greek)
stf Δημοσ. 17 Φεβρουαρίου 2011 Μέλος Δημοσ. 17 Φεβρουαρίου 2011 Εχω δοκιμασει τα πάντα...δεν ειμαι πολυ σχετικος βεβαια..αρα καπου θα κανω λαθος. όταν έβαζα charset σε όλο το site σε ISO 8859-7 το δείχνει κινέζικα.. άλλαξα διαφορα collation στη mysql αλλα τιποτα. το collation by default ειναι utf8_general_ci (case insensitive). αποσο έψαξα υπάρχει collation utf8_general_cs που είναι case sensitive. δεν το δοκίμασα δεν ξερω πως μπορεις να το βάλεις.δεν υπαρχει by default στη mysql. Οταν κάνεις search μια λέξη στο site to url ειναι /search?query=λέξη στο search.php δοκίμασα διάφορες εντολες...αλλα κ παλι τπτ.. εχει αυτες τις γραμμες που ορίζει collation στο search.php... >$key = htmlentities(strip_tags($_REQUEST['key']), ENT_COMPAT, "UTF-8"); $text = htmlentities(strip_tags($_REQUEST['query']), ENT_COMPAT, "UTF-8"); αν βάλω normalizer ή κατι τέτοιο? το phpbb αποτι είδα χρησομοποιει στο search του. στην αρχή το φανταζόμουν ποιο απλό..να βάζεις καπου μια εντολή που να κάνει match τα τονισμένα γράμματα με αυτα χωρίς τόνο. και όταν ψάχνει να βλέπει όλα τα γραμματα χωρίς τόνο. sorry παιδια αν δεν σας βοηθάνε αυτα που σας λέω να καταλάβεται. ειμαι πολυ νεεος σαυτα ευχαριστώ για τις απαντήσεις
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.