IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Implémenter une fonction de recherche approximative


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut Implémenter une fonction de recherche approximative
    Hello les gars,
    passé bonne journée?
    Je suis membre de ce club depuis aujourd'hui... Champagne!

    Pour mon site web http://laurent.bernard.ibelgique.com, j'ai une table contenant une liste de films.
    j'ai une option permettant à l'utisateur de rechercher un fim
    http://laurent.bernard.ibelgique.com/index.php?page=3
    Je récupère le texte et j'effectue une recherche par titre.
    Ca fonctionne très bien lorsqu'il tape le nom correct du film.
    Amettons qu'il fasse une faute de frappe ou qu'il tape seulement une partie
    du titre, j'aimerais que mon script trouve malgré tout le film qu'il cherche.
    Peut-on utiliser des expression régulière?
    Pas facile tout ca...

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Dans ton SQL, tu peux utiliser titre LIKE '%___%' au lieu de titre = '___' : cela te permettra d'effectuer des recherches sur une partie du titre.
    Ensuite, si tu souhaites approximer les résultats en cas d'erreur, cela sera largement plus complexe. Tu peux essayer de te tourner vers les soundex ou trouver d'autres algos mais je ne sais pas si ça vaut le coup. Ton utilisateur se rendra bien compte qu'il a fait une faute, je pense ?

  3. #3
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    A la limite pour plus d'ouverture sinon tu peux rajouter quelque chose dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ... FROM ... WHERE UPPER(nom) LIKE '%" . strtoupper($mavar) . "%'
    Comme ca en meme temps tu elimines les erreurs de majuscule minuscule.
    Tout énigme a une solution ! Tout est question de discipline !

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut
    cool les gars
    et pour les fautes de frappes

    par exemple "crash" il l ecrit crach, tant pis...
    l utilisateur n a qu a ecrire le mot correctement
    Par exemple google utilise quel algorithme?
    Votre solution est plutot satisfaisante!

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par Bebel
    A la limite pour plus d'ouverture sinon tu peux rajouter quelque chose dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ... FROM ... WHERE UPPER(nom) LIKE '%" . strtoupper($mavar) . "%'
    Comme ca en meme temps tu elimines les erreurs de majuscule minuscule.

    S'il s'agit de MySQL, la comparaison est toujours effectuée en minuscules, cette précaution est donc inutile.

Discussions similaires

  1. Implémenter une fonction rechercher
    Par unratalle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/04/2015, 09h03
  2. [MOSS 2007] Création d'une fonction de recherche
    Par Enthau dans le forum SharePoint
    Réponses: 0
    Dernier message: 14/04/2008, 16h21
  3. vb.net pb dans une fonction de recherche
    Par hajarussa dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/08/2007, 13h03
  4. Réponses: 6
    Dernier message: 27/06/2007, 16h44
  5. Créer une fonction de recherche multi début de mot
    Par Pakkaï dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 29/03/2007, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo