Bonjour,
J'ai un code qui fait une recherche de plusieurs mots clef dans ma base de donnée et ensuite qui regarde sur toute les lignes la presence d'un de ces mots dans la colonne syptome oui parceque c'est mots clef sont des symptômes entrer par l'utilisateur sur une barre de recherche.

Ensuite il affiche le titre de la ligne le contenant.

Mais maintenant j'aimerais l'améliorer je voudrais que qu'il affiche que les lignes contenant au minimum 2 , 3 , 4 ou plusieurs , des symptômes inscris par l'utilisateur et les classé de la même manière ce que j'appelle par ordre de pertinence donc le premier le plus évident sera celui qui regroupera la majorité des symptômes et ainsi de suite.

Voici mon code :

<?php

if(isset($_POST['envoyer']) && $_POST['envoyer'] != NULL)
 // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
       {

if(isset($_POST['mot']) && $_POST['mot'] != NULL)
 // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
       {

        if(isset($_POST['conditions']) && $_POST['conditions'] != NULL)

{

try
{
$bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'root', 'root');
} catch (Exception $e ) {

    die('Erreur : ' .$e->getMessage());
}

$mot = htmlspecialchars($_POST['mot']);
$mot_clef= explode("," , $mot);

$_SESSION['saisi'] = $mot_clef ;

$sql = "SELECT * FROM maladie WHERE Symptome REGEXP '";
   $like ="";

   foreach ($mot_clef as $value)
   {
          $like .= "$value|";
   }

$sql .= substr($like,0,-1)."'";

$nb_resultats = $bdd -> query($sql) -> rowCount();
if ($nb_resultats > 0)
 {
echo (" $nb_resultats resultat(s)" ) ;
 }

else
  {?>
    <br/><strong><?echo ("Desoler nous n'avons pas trouver , Veuillez verifier votre saisi."); ?> <br/> <? echo (" Cela n'exclu pas l'importane de consulter un specialiste  ");
  }?> </strong>

    <?

$resx = $bdd -> query($sql);
while ($donnees = $resx -> fetch())
    {

?>
<p>

<strong> <? echo $donnees['id']; ?> </strong><?php echo $donnees['titre']; ?> <br/>

 <form method="post" action="<?php echo $donnees['titre']?>.php">

  <input type="submit" name="ouvrir" value=" Voir  " >
  </form>
   <br/>
<?php

     }

$bdd -> query($sql)->closeCursor();

         }else {

echo " Veuillez accepter les conditions  ";

}

    } else {

echo " Veuillez remplir le champs texte ";

}

}

?>

                      <p>Veuillez ecrire vos symptomes ou  maladie si c'est pour plus d'information , nous esperons que vous apprecirez amal .</p>
    <form method="post" action="">
       <label for="nom"> Quels sont vos symptomes ?</label>
       <input type="text" name="mot" id="nom" /><br />

       <input type="checkbox" name="conditions" id="conditions" /> <label for="conditions">J'ai lu et j'accepte les conditions d'utulisations </label><br />

<input type="submit" name="envoyer" value="rechercher" />

</form>

Aucune réponse