Mini Search Engine με ή χωρίς τόνους...

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

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

Απάντηση
Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από elavd » 19 Σεπ 2005 14:46

Θα ήθελα βοήθεια στο εξής:
Θέλω να φτιάξω ένα πεδίο search το οποίο θα παίρνει ένα string και θα ψάχνε στη βάση ΜySQL. Π.χ. έχω καταχωρημένα ονοματεπώνυμα σε στήλες surname και name.
Θέλω όταν στο πεδίο ο χρήστης γράψει πχ "Δημητρ" (όχι όλο το όνομα) να του εμφανίζει αποτελέσματα που έχουν αυτό το String είτε από τη στήλη surname είτε από τη στήλη name.
Σκέφτηκα να γράψω:

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

SELECT * FROM db WHERE surname OR name LIKE '%Δημητρ%'
(Βέβαια το "Δημητρ" θα το έχω σε μια μεταβλητή πχ $search). Άρα:

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

SELECT * FROM db WHERE surname OR name LIKE '%$search%'
Εγώ όμως θέλω το search να αγνοήσει τους τόνους και να μου βγάλει σαν αποτέλεσμα πχ και το "Δημήτριος" αλλά και το "Δημητριάδης".
Πώς μπορεί να γίνει κάτι τέτοιο?
Εικόνα

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από greekbytes » 19 Σεπ 2005 19:47

δες εδώ μήπως πάρεις καμιά ιδέα http://www.freestuff.gr/forums/viewtopic.php?t=15242

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από elavd » 20 Σεπ 2005 13:28

To Google για παράδειγμα, είτε γράψεις τονισμένη μια λέξη, είτε όχι, βρίσκει τα ΙΔΙΑ αποτελέσματα...
Εικόνα

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

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από cordis » 20 Σεπ 2005 15:27

το google κάνει αυτό που λέμε εδώ http://www.freestuff.gr/forums/viewtopic.php?t=15242
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
beredim
Δημοσιεύσεις: 26
Εγγραφή: 28 Ιαν 2004 10:04

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από beredim » 20 Σεπ 2005 16:28

Πάντως δεν θεωρείται καλή συνήθεια να αποθηκεύουμε ονόματα (και αναλόγου είδους πληροφορίες π.χ. Διεύθυνση) με πεζά, αλλά εξ ολοκλήρου σε κεφαλαία και χωρίς τόνους.
ΠΑ ΒΩ ΚΑΙ ΚΙΝΩ ΤΑΝ ΓΑΝ

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από elavd » 20 Σεπ 2005 18:48

beredim έγραψε:Πάντως δεν θεωρείται καλή συνήθεια να αποθηκεύουμε ονόματα (και αναλόγου είδους πληροφορίες π.χ. Διεύθυνση) με πεζά, αλλά εξ ολοκλήρου σε κεφαλαία και χωρίς τόνους.
Όντως...Αν τα είχα όλα με κεφαλαία θα βοηθούσε... :roll: :roll:
Σκέφτηκα να προσθέσω ένα script στη φόρμα έτσι ώστε κατά την καταχώρηση των στοιχείων, ανεξάρτητα από το πώς τα πληκτρολογεί ο χρήστης, να γίνονται κεφαλαία. Την ιδέα την πήρα από το http://www.postal.gr/

Το θέμα είναι όμως, τα ήδη αποθηκευμένα στοιχεία στη Bαση ΠΩΣ θα τα μετατρέψω από πεζά σε κεφαλαία για να λυθεί το πρόβημα?
Εικόνα

Άβαταρ μέλους
shadow
Script Master
Δημοσιεύσεις: 606
Εγγραφή: 14 Απρ 2005 18:30

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από shadow » 20 Σεπ 2005 21:29

Μπορεις να μετατρέπεις τα keywords στα οποια θες να κανεις search σε κεφαλαία και το ίδιο να κάνεις και στα αντίστοιχα records του πίνακα οπου θα κάνεις search:

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

$titleU = strtoupper($title);
$sql = "(UPPER(field) LIKE '%".addslashes($titleU)."%' )";
$query = "SELECT * FROM myTable WHERE $sql";
Βεβαια πιθανον με αυτή τη λύση να χρειαστεί να παίξεις με τα locales, εφοσον η μετατροπή από μικρά σε κεφαλαία εξαρτάται από το locale.

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

setlocale(LC_ALL , 'el_GR'); /*me locale -a blepeis ta uparxonta locale sto sistima sou
Close your eyes
For your eyes will only tell the truth and the truth isnt what you want to see
In the dark, is it easy to pretend that the truth is it ought to be.
Programmers are programmers because they like to code

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από elavd » 20 Σεπ 2005 22:04

Με την εντολή που μου είπες, τα τονούμενα φωνήεντα, πώς μετατρέπονται όταν γίνουν κεφαλαία?
Πχ το ά γίνεται Ά ή Α???

Επίσης, τι είναι τα locales ? :oops:
Εικόνα

Άβαταρ μέλους
shadow
Script Master
Δημοσιεύσεις: 606
Εγγραφή: 14 Απρ 2005 18:30

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από shadow » 21 Σεπ 2005 22:30

Με την strtoupper τα τονούμενα φωνήεντα θα γίνουν :

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

ά->'Α, ή->'Η, κτλ
Τα locales ουσιαστικα ειναι ενα σύνολο παραμέτρων που καθορίζουν την γλώσσα, την χώρα κτλ, που θέλει να χρησιμοποιήσει ο χρήστης
π.χ. για τα ελληνικά ορισμένα locales που μπορείς να έχεις είναι:
el_gr , el_gr.iso8859-7 , el_gr.utf8
Close your eyes
For your eyes will only tell the truth and the truth isnt what you want to see
In the dark, is it easy to pretend that the truth is it ought to be.
Programmers are programmers because they like to code

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

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από cordis » 26 Σεπ 2005 17:12

shadow έγραψε:

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

setlocale(LC_ALL , 'el_GR'); /*me locale -a blepeis ta uparxonta locale sto sistima sou
Γκρρρρρ... και χθες το βράδυ παιδευόμουν με αυτό... το έβαζα el_EL και περίμενα να δουλέψει.. Γιατί δεν έμπαινα στο freestuff να δω πως είναι το σωστό; Εεε; :P :P :lol:
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Mini Search Engine με ή χωρίς τόνους...

Δημοσίευση από Rapid-eraser » 26 Σεπ 2005 18:26

8a mporouses bebea apla va avtika8istas tous xaraktires pou exouv tovous me tov xaraktira _ oste va kavei cache diaforous sivdiasmous me tovous n xoris tovous.

Episis avalogos me tov tipo tou eletxou isos se evdiaferei va koitakseis kai sta full text search pou exouv kapies divatotites parapavo apo ta apla patern much kai fisika mporouv va kavouv ordering me basi to rack tis ekfrasis kati
pou dev mporei va kavei to like.

Pavtos to problia sou eivai ka8ara 8ema soundex
av se evdiaferei kata poli tosi leptomeria isos 8a eprepe
va to epsxves kalitera
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

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

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

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