begin process at 2012 05 31 01:34:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Probleme avec recherche de plusieurs mots-clés


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme avec recherche de plusieurs mots-clés

lundi 3 décembre 2007 à 18:47:18 | Probleme avec recherche de plusieurs mots-clés

cyse

Bonsoir,

J'essai de faire un moteur de recherche en interne pour un site.
Je ne suis pas super doué en php encore et je n'arrive pas à cerner quelquechose.
J'ai reussi à partir de différentes sources et modifié à ma guise à faire des recherches depuis une base, affiché les resultats, compter le nombre de caractères dans le ou les mots clés mais par contre je n'arrive pas à faire une recherche propre sur plusieurs mots.

Par exemple, si je cherche le mot-clé "voiture" j'ai tout ce qui contient voiture. mais si je recherche "voiture de location", ca recherche et affiche tout ce qui concerne "voiture", "de" et "location" ! Et non la phrase entière !

Avez-vous une solution ?

Merci par avance.

[code]
<table border=0 cellspacing=0 cellpadding=0><tr>
   <form method="post" action="recherche.php">
      <td><input name="search"></td>
      <td><input type="submit" value="Chercher"></td>
   </form>
</tr></table>


<?
//connexion a la base
require 'connect.inc.php';

//recup du resultat formulaire
if(isset($_POST['search']))      $search=$_POST['search'];
else      $search="";

//variable pour la longueur de la recherche
$len_search=strlen($search);

// si la recherche est vide on abandonne la requete
if(empty($search))
    {
    echo 'tapez une recherche';
    exit();
    }
   
// si la recherche est inferieur a x on abandonne la recherche   
if($len_search<3)
    {
    echo 'recherche inferieur a 3';
    exit();
    }

// si les conditions sont remplies on execute la requete
    else    
    {
$Recherche= strtolower($search);
$MaTable="blagues";
$Requete="SELECT * FROM $MaTable WHERE ";
$MotClef = explode(" ", $Recherche);
$NbMotClef = count($MotClef);
$Requete.= "(";
$RequeteTri=mysql_query("SHOW COLUMNS From $MaTable");
$I="0";
while ($Row = mysql_fetch_array($RequeteTri))
{
$Type = eregi_replace("[^a-z]", "", $Row['Type']);
$I2="0";
    if((($Type=="varchar")||($Type=="text")||($Type=="date")))
    {
    if($I!="0") { $Requete.= " OR "; }
    reset($MotClef);
    foreach($MotClef as $V)
        {
        $I2++;
        $Requete.= $Row['Field'] . " LIKE '%$V%'";
        if($I2!=$NbMotClef) { $Requete.= " OR "; }
        }
    $I++;
    }
}
mysql_free_result($RequeteTri);

$Requete.= ")";

$req = mysql_query($Requete) or die('Erreur SQL !<br>'.$Requete.'<br>'.mysql_error());
echo 'recherche de '.$search.'';
$count = mysql_num_rows($req);
echo 'il y a '.$count.' resultat(s)';
while ($data = mysql_fetch_array($req)) {
echo nl2br('<h5>'.$data['joke'].'</h5>');
}

}
?>
[/code]
lundi 3 décembre 2007 à 23:00:52 | Re : Probleme avec recherche de plusieurs mots-clés

neigedhiver

Salut, Jette un oeil à la doc : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
dimanche 2 mars 2008 à 10:58:48 | Re : Probleme avec recherche de plusieurs mots-clés

eso_1er


merci !

$querybase

=mysql_query("SELECT * FROM base WHERE MATCH(option3_contenu,option4_contenu,option5_contenu) AGAINST ('%$q%' IN BOOLEAN MODE) AND pseudo_hpcontenu=\"$compte\"");

ça marche super.



Cette discussion est classée dans : mysql, recherche, requete, echo, search


Répondre à ce message

Sujets en rapport avec ce message

Deux Bases Mysql [ par WebmasterX ] Le probleme avec la requete c'est qu'elle affiche toute les données.Vous pôuvez revoir la requete svp !!!je veux que quand je donne un choix depuis la Problème avec un soit disant moteur de recherche lol [ par gssk ] Au fait j'ai fait un "moteur de recherche" (code pourrave je le sais merci !!), et je n'ai que d erreur de variables indéfini! tels que Mot,idM,nomM e aide pour mon moteur de recherche [ par kroland ] j'aurai besoin d'aide pour mon moteur de recherche tout simple que je tante de concevoir... voila le code que j'ai fai pour le moment : tou d'abord l Tableau dynamique [ par kenny18 ] salut à tous,l'autre jour, j'ai demandé comment n'affiché que le champs renseignés de ma tabledans un tableau dynamique. Mathis49 m'a répondu ça :$req probleme de suppression [ par soso57 ] Salut à tous, j'ai un petit prob, j'aimerai supprimer un champ dans mysql grace a un tableau. voici ma page ou je recherche toute les nouvelles et j'a Moteur recherche [ par ghostkill77 ] Bonsoir tout le monde , j'ai repris une des sources qui se trouvais sur ce site mais je n'arrive pas la faire marchée . En effet je pense que le probl recherche base mysql [ par cobra176 ] bonjour a tousj'ai un probleme , j'ai un code qui me permet de recherche des informations contenu dans une seule table mais je veux recherche une info transfert de données d'un page aa l'autre [ par cobra176 ] bonjour a tous j'ai un probleme de transfert de donnéesj'ai fait un moteur de recherche sur un base sqlil m'affiche certains que lui indique puis je v probleme de programme bdd [ par snakeyes ] Bonjour à tous.débutant en php, je me suis construit pour mon activité professionnelle une base de donnée.Mais j' ai mon programme, celui qui doit eff problème avec $_POST['recherche_id'] [ par Batman60 ] Bonjour je suis débutant en PHP j'ai un problème avec $_POST[]quand j'actionne sans avoir rempli le </fo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales