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

Requêtes MySQL Discussion :

aide svp, recherche multi critère


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Par défaut aide svp, recherche multi critère
    Bonjour,

    je me suis fais un petit moteur de recherche et j'ai la requète suivante :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $req = mysql_query("
      SELECT url, titre 
      FROM $table 
      WHERE mots_cles LIKE '%" .$_POST['recherche']."%' 
      Order by url Asc
    ");
    cela marche trés bien, mais si dans mon formulaire si je met deux mots clé mon moteur ne trouve plus !!! Par exemple mot clé 91 trés bien il trouve tout les clients du 91, mais si je met 91, Travaux public il ne me trouve rien, alors que j'ai bien dans ma base des clients dans le 91 en travaux public.

    je crois que c'est mon LIKE '%" que je doit modifier, mais je décroche un peu beaucoup, j'ai passé tout mon week end à lire le forum pour comprendre GRRRR !!! Un peu d'explication d'un pro serait d'un super secours merci

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    ce n'est pas comme ceci que tu dois procéder mais comme cela

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Par défaut REPONSE
    Citation Envoyé par Madfrix Voir le message
    Bonjour,

    ce n'est pas comme ceci que tu dois procéder mais comme cela
    Merci mais je n'y comprend encore moins je vais y bosser

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Pour commencer, ton code est sujet aux injections par SQL car tu ne protèges pas ta valeur $_POST['recherche']. En gros, quelqu'un peut supprimer ta base ou récupérer tes données

    Tu dois entourer ta valeur de recherche avec mysql_real_escape_string(). Je te conseilles fortement et avant toute chose d'aller voir cette fonction et son intérêt

    Dans ton cas de figure, tu aurais une requête de ce style :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT url, titre FROM $table 
    WHERE MATCH(mots_cles) AGAINST('mysql_real_escape_string($_POST[\'recherche\'])')
    Order by url Asc

    Nécessite de positionner un index FULLTEXT sur ton champ mots_cles

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Par défaut SNIF !!!!!
    Citation Envoyé par Madfrix Voir le message
    Pour commencer, ton code est sujet aux injections par SQL car tu ne protèges pas ta valeur $_POST['recherche']. En gros, quelqu'un peut supprimer ta base ou récupérer tes données

    Tu dois entourer ta valeur de recherche avec mysql_real_escape_string(). Je te conseilles fortement et avant toute chose d'aller voir cette fonction et son intérêt

    Dans ton cas de figure, tu aurais une requête de ce style :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT url, titre FROM $table 
    WHERE MATCH(mots_cles) AGAINST('mysql_real_escape_string($_POST[\'recherche\'])')
    Order by url Asc

    Je viens d'y passer deux heures !!!! ça ne manche pas je n'y comprend rien !!! je crois que je suis calé sur ce coup !!

    Nécessite de positionner un index FULLTEXT sur ton champ mots_cles

Discussions similaires

  1. [AC-2007] Aide sur Tuto Recherche Multi-Critères adapté
    Par Accessifiante dans le forum IHM
    Réponses: 11
    Dernier message: 25/05/2013, 13h52
  2. Recherche multi-critères
    Par PAUL87 dans le forum Access
    Réponses: 66
    Dernier message: 13/12/2005, 12h12
  3. problème SQL avec le tutoriel recherche multi critère
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/12/2005, 19h33
  4. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h00
  5. Procédure stockée: recherche multi-critères
    Par biroule dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 01/09/2004, 16h02

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