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 :

recherche un mot dans une table


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut recherche un mot dans une table
    Bonjour à tous,

    j'essaye de faire un moteur de recherche.

    le LIKE '%$recherche%' est interressant mais si on cherche par exemple 'vis' on retrouve 'television' dans les résultats (car il contient vis); ajouter des espaces n'est pas suffisant car certain mot commence des phrases ou sont après des virgule ou les finisse...

    après avoir avoir chercher longtemps j'ai pondu ça:
    select monchamp from matable where monchamp REGEXP '[ \'.,:;!]".$recherche."[ .,:;!]|^".$recherche."[ .,:;!]|[ .,:;!]".$recherche."$'

    1. recherche des mots avec des espaces ou de la ponctuation de chaque coté
    2. recherche des mots commençant une phrase
    3. recherche des mots finissant une phrase

    Y-a-t-il plus simple?
    Vais-je réelement trouver tous les mots?

    Merci de vos réponse.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 103
    Points : 8 216
    Points
    8 216
    Billets dans le blog
    17
    Par défaut
    Les modèles [[:<:]] et [[:>:]] pourraient t'intéresser pour délimiter des mots :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE tonChamp REGEXP '[[:<:]]$recherche[[:>:]]'
    Sinon pour un moteur de recherches il y a les fonctionnalités FULLTEXT de MySQL qui sont très sympas : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. [CakePHP] Comment faire une recherche avec deux mots dans une table
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/02/2014, 23h20
  2. Recherche de mots dans une table Oracle
    Par ducho dans le forum SQL
    Réponses: 2
    Dernier message: 03/09/2008, 13h58
  3. [Regex]Recherche de mots dans une chaîne
    Par lionel69 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 17/11/2005, 18h20
  4. recherche Date nulle dans une table
    Par lol_adele dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/04/2004, 14h06
  5. Recherche de donnee dans une table associée
    Par josoft dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/07/2003, 15h22

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