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 avancée sur une table MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut Recherche avancée sur une table MySQL
    Bonjour,

    Je cherche un script qui permet de faire une recherche avancée sur une table MySQL avec les fonctions suivantes :
    - ignorer les accents (si le mot clé est recupere il peut afficher les résultats qui contient récupéré et inversement)
    - ignorer les mots du type : le – la – un – une – dans - ….
    - Rechercher n’importe quel mot ou bien rechercher tous les mots clés

    J’ai beau cherché sur le net mais je n’ai pas trouvé un script pareil donc je me suis retournée vers vous espérons trouver une réponse sur ce forum.

    Merci d’avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Pour ignorer les mots genre "le", "ou"..., le plus simple est de les virer de tes mots recherchés. Tu peux par exemple écrire une liste des mots à ne pas chercher puis éplucher la liste des mots recherchés par l'utilisateur et en supprimer les mots de ta liste (chuis pas sûre d'être très claire là...)

    En ce qui concerne le choix "tous les mots" ou "chaque mot", il suffit de remplacer le AND par un OR dans ta requête SQL (et inversement)

    Pour les accents, en revanche je ne sais pas...

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Pour les accents, il suffit d'essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 'international' = 'intèrnâtiônâl'
    Ceci retourne 1, ce qui veut dire qu'il y a égalité et qu'il ne tient pas compte des accents.
    En revanche,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select binary 'international' = 'intèrnâtiônâl'
    retourne 0.

Discussions similaires

  1. Modifier une contrainte d'unicité sur une table mySQL
    Par bernidupont dans le forum Débuter
    Réponses: 2
    Dernier message: 19/02/2013, 14h52
  2. 38 champs sur une table [mysql]
    Par crystaldope dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/07/2008, 22h54
  3. Recherches récursives sur une table unique
    Par Selenn dans le forum Langage SQL
    Réponses: 15
    Dernier message: 01/02/2008, 13h20
  4. [MySQL] Traitement sur une table MySQL
    Par namstou3 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/09/2007, 13h33
  5. Recherche globale sur une table
    Par webrider dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2006, 11h41

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