aide svp : requete sql => MATCH() AGAINST()

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par titouf7512, 29 Février 2012.

  1. titouf7512
    titouf7512 Nouveau WRInaute
    Inscrit:
    29 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    Bonjour tout le monde

    Je suis en train de créé un site, qui necessite une base de donnée (qui sera assez conséquente a term) et j'ai donc opter pour un moteur de recherche dont la requete sql serait :
    $selection_recherche = mysql_query("SELECT * FROM recherche WHERE MATCH (titre,description,article,adresse) AGAINST ('$recherche') ORDER BY id ASC");
    car MATCH() AGAINST() est plus léger que LIKE

    Le problème est le suivant : si je ne tape pas exactement le mot que je cherche ex: titre, mais que je tape juste "titr", impossible de trouver l'article
    Est ce qu'il existe un équivalent aux "%" pour la requete LIKE, qui ressemblerait à : ('%$recherche%')

    merci d'avance
     
  2. titouf7512
    titouf7512 Nouveau WRInaute
    Inscrit:
    29 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    désolé pour toutes les fautes d'orthographe :)
     
  3. titouf7512
    titouf7512 Nouveau WRInaute
    Inscrit:
    29 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    Finalement, après une nuit de recherche, je viens de trouver !
    Voici ma nouvelle requete : $selection_recherche = mysql_query("SELECT * FROM recherche WHERE MATCH (titre,description,article,adresse) AGAINST ('$recherche*' IN BOOLEAN MODE) ORDER BY id ASC");

    Malheureusement, elle lorsqu'on recherche "mot1 mot2", le résultat de la recherche comporte : "mot1 mot2" mais aussi "mot1" ou encore "mot2", alors que je voudrais qu'il n'affiche que les articles contenant les deux mots "mot1 mot2"

    Auriez vous une idée?
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 168
    J'aime reçus:
    345
  5. titouf7512
    titouf7512 Nouveau WRInaute
    Inscrit:
    29 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    oui mais si je mets : + $mot1* + $mot2*
    avec les " * " ca ne fonctionne pas, bizarrement il me donne les resultats contenants mot2
     
  6. titouf7512
    titouf7512 Nouveau WRInaute
    Inscrit:
    29 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    en fait c'est bon, il fallait coller le + au mot, merci beaucoup pour votre réponse, mon moteur de recherche est enfin terminé ! !
    Voila si ça peut aider quelqu'un, un moteur de recherche sur plusieurs tables, avec plusieurs mots dans la recherche

    if (isset($_POST['rechercher'])) //si on a validé le formulaire
    {
    $recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
    $recherche=strtolower($recherche); //on passe en minuscule
    $mots = str_replace("+", " ", trim($recherche)); //on remplace les + par des espaces
    $mots = str_replace("\"", " ", $mots); //idem pour \
    $mots = str_replace(",", " ", $mots); //idem pour ,
    $mots = str_replace(":", " ", $mots); //idem pour :

    $donnee=explode(" " , $mots);

    $mot1 = $donnee[0];
    $mot2 = $donnee[1];
    $mot3 = $donnee[2];
    $mot4 = $donnee[3];
    $mot5 = $donnee[4];


    $nombre_mots = count($donnee); //comptage du nombre de mots

    for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en incrémentant à chaque fois le nombre de mots
    {
    $selection_recherche = mysql_query("SELECT * FROM recherche
    WHERE MATCH (titre,description,article,adresse) AGAINST (' +$mot1* +$mot2* +$mot3* +$mot4* +$mot5*' IN BOOLEAN MODE) ORDER BY id ASC"); //requête contenant le résultat de la boucle
    }

    $nombre_resultats = mysql_num_rows($selection_recherche); //comptage du nombre d'entrées sélectionnées par la recherche

    }
     
  7. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
     
  8. titouf7512
    titouf7512 Nouveau WRInaute
    Inscrit:
    29 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    pardon, plusieurs champs, autant pour moi
     
Chargement...
Similar Threads - aide svp requete Forum Date
Aide php/mysql requête svp Développement d'un site Web ou d'une appli mobile 9 Août 2009
Besoin d'aide sur requête svp. Développement d'un site Web ou d'une appli mobile 21 Novembre 2008
Requete Mysql AIDE svp ! Développement d'un site Web ou d'une appli mobile 22 Février 2008
aide robot.txt svp Débuter en référencement 26 Mars 2020
SVP aidez moi à comprendre le social referral de mon site Google Analytics 9 Juin 2017
aide pour une redirection svp Développement d'un site Web ou d'une appli mobile 12 Septembre 2015
Aide Svp, pour une règle de ré-écriture URL Rewriting et .htaccess 11 Août 2015
Google n'affiche pas mon site dans le résultat : Aide SVP Débuter en référencement 15 Septembre 2014
Mon site a perdu tout son positionnement sans raison : Aide SVP Problèmes de référencement spécifiques à vos sites 6 Août 2014
Redirection 301 d'une sous catégorie : besoin d'aide svp Débuter en référencement 2 Juin 2014
Demande d'aide svp Google+ 2 Avril 2014
Demande d'aide svp Débuter en référencement 9 Janvier 2014
Referencement de l'aide svp Débuter en référencement 13 Août 2013
Domaines compagnons et Duplicate Content - Besoin d'aide SVP Crawl et indexation Google, sitemaps 5 Juillet 2013
Aidez un débutant SVP!!! Débuter en référencement 25 Février 2013
Pénalités ? Très mauvais Code ? Pas assez de BL ? Aidez moi svp à comprendre Problèmes de référencement spécifiques à vos sites 12 Février 2013
Qui peut m'aider SVP je suis a bout... Débuter en référencement 5 Février 2013
Cas d'Ecole réel Auteur contre Copieur aide svp ! Développement d'un site Web ou d'une appli mobile 24 Novembre 2012
Tentative de hack ? un aide svp ! Administration d'un site Web 5 Juin 2012
Tentative de hack ? un aide svp ! Développement d'un site Web ou d'une appli mobile 5 Juin 2012