Fonction pour ordonner les résultats de ma recherche

Fermé
augustin78 Messages postés 56 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 13 mai 2016 - Modifié par augustin78 le 15/04/2013 à 21:18
augustin78 Messages postés 56 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 13 mai 2016 - 16 avril 2013 à 21:37
Bonjour,
j'ai une page php qui me réalise une recherche en fonction de 5 variable entrées par l'utilisateur puis surligne ces 5 variables dans mon entrée symptomes de ma base. Or ma base est mal foutu et j'aimerai que si deux symptômes sont présents dans une maladie et que les autres n'ont qu'un symptome elle doit etre placé avant:
 if ($nbr==5) { 
   $requete=mysql_query( "select * from diagnostique     WHERE  'sexe' LIKE '%$Sexe%' 
   and $Age<age_max and $Age>age_min 
   and ('symptomes' LIKE '%$Sympt1%' 
   or 'symptomes' LIKE '%$Sympt2%' 
   or 'symptomes' LIKE '%$Sympt3%' 
   or 'symptomes' LIKE '%$Sympt4%' 
   or 'symptomes' LIKE '%$Sympt5%')") or die (" ==> " . mysql_error()); 
   } 
  $total = mysql_num_rows($requete); 
  //echo $total."<br />"; 

  if (!$requete) 
   { 
   echo " <br/> <br/> <p align=center>Impossible d'exécuter la requête sql dans la base.</p> <br/> <p align=center> <img src='erreur.gif' /></p><p align=center><br/> <div id=\"HP\"><a href=\"E-diagno.php\">Retour</a></div></p> " . mysql_error(); 
   echo '</section></body><footer> <center>Projet ISN 2013 E-Docteur® - Tous droits réservés.</center></footer></html>'; 
   exit; 
   } 
  
 if ($total==0) 
 { 
 echo '<br/><br/><center>Aucune maladie trouvée.</p> <p> <img src="erreur.gif" /><br/><div id="HP"><a href="E-diagno.php">Retour</a></div></p></center>'; 
 echo '</section></body><footer> <center>Projet ISN 2013 E-Docteur® - Tous droits réservés.</center></footer></html>'; 
 exit; 
 } 
  
if ($requete) 
{  
echo ' <div id="info"><p>Vous trouverez dans le tableau ci-dessous le(s) résultat(s) de votre requête. Les maladies les plus probables ayant au moins un <span style="font-weight:bold; color:red;"> symptôme correspondant </span> ont été sélectionnées. Si vous ne retrouvez pas l\'un de vos symptômes choisis précedemment, c\'est que la base de données ne comporte pas de maladies répondant à l\'ensemble de vos critères.</p> </div> '; 
    echo 
'<div id="lien"> 
<p align=center> 
    <table width=630 border=0 cellpadding=0 cellspacing=0> 

        <tr> 
            <td style="border: 0px;" height=22> </td> 
            <td valign=top style="background-image: url(ok.png)"><b><p align=center>NOM</p></b> </td> 
             
            <td valign=top style="background-image: url(ok.png)"><b><p align=center>SYMPTÔMES</p></b> </td> 
         </tr> 
        <tr> 
'; 
  
    // définition de la liste des symptômes à surligner   
    $symptoms = array( 
        $Sympt1, 
        $Sympt2, 
        $Sympt3, 
        $Sympt4, 
        $Sympt5 
    ); 
  
    // fonction : recherche symptômes et surlignage 
    $highlight_symptoms = 
        function($p) use ($symptoms) 
        { 
            foreach ($symptoms as $v) 
            { 
                $p = str_replace($v, '<span style=" color: red; font-weight:bold;">'.$v.'</span>', $p); 
            } 
  
            return $p; 
        }; 
  
  
    while ($row = mysql_fetch_array($requete)) 
    { 
        echo 
<<<HTML 
            <td style="border: 0px;" height=22> </td> 
            <td valign=top>{$row['nom']}</td> 
             
            <td valign=top>{$highlight_symptoms($row['symptomes'])}</td> 
        </tr> 
HTML; 
    } 
  
    echo' 
    </table> 
</p> 
</div> 
<br/>';

pour tester:
http://e-docteur.legtux.org/Diagnostic/E-diagno.php
Merci d'avance


A voir également:

1 réponse

augustin78 Messages postés 56 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 13 mai 2016
16 avril 2013 à 21:37
petit up!
0