Problème avec une requête SQL

Problème avec une requête SQL - PHP - Programmation

Marsh Posté le 22-10-2002 à 22:45:44    

Bonjour,
 
Voilà, j'ai une base de données comportant plusieurs contacts. Et je souhaite mettre un petit moteur pour trouver un contact plus facilement.
 
A première vue, ça marche, mais en fait, je me rends compte qu'il ne m'affiche pas tout...
 
Voici la requête, sachant que $nom est le mot saisi dans le champ du moteur.
 
Est-elle bien écrite ? Où alors, c'est normal qu'elle ne marche pas comme il faut ?
 
En fait, par exemple, quand je tape "beau", normalement un contact devrait s'afficher, et rien ne s'affiche, même pas la réponse "Aucun résultat".
 

Code :
  1. $sql="SELECT * FROM confidentielle_adresses WHERE nom LIKE '%$mot%' OR prenom LIKE '%$mot%' OR societe LIKE '%$mot%' OR fonction LIKE '%$mot%' ORDER BY nom";
  2. $result=mysql_query($sql);
  3. if (!mysql_fetch_array($result))
  4. {
  5. print <center>Aucun contact ne correspond à votre recherche...</center>";
  6. }
  7. while($resultat=mysql_fetch_array($result))
  8. { ?>
  9. <tr>
  10.  <td colspan="2" align="center" bgcolor="#314497" class="menu"><b><? echo $resultat[nom]; ?> <? echo $resultat[prenom]; ?><b></td>
  11. </tr>
  12. <? } ?>


---------------
Thenab - Quitte à passer pour un con, passe vite !
Reply

Marsh Posté le 22-10-2002 à 22:45:44   

Reply

Marsh Posté le 23-10-2002 à 10:39:34    

Essaie, au lieu d'avoir du like '%$mot%' dans ta requête, de faire un  
 
$mot = "%" . $mot . "%";
 
et du like '$mot' après...
 
Toi, tu n'as pas fait d'echo $requete; pour vérifier :D

Reply

Marsh Posté le 23-10-2002 à 12:25:56    

Thenab a écrit a écrit :

Bonjour,
 
Voilà, j'ai une base de données comportant plusieurs contacts. Et je souhaite mettre un petit moteur pour trouver un contact plus facilement.
 
A première vue, ça marche, mais en fait, je me rends compte qu'il ne m'affiche pas tout...
 
Voici la requête, sachant que $nom est le mot saisi dans le champ du moteur.
 
Est-elle bien écrite ? Où alors, c'est normal qu'elle ne marche pas comme il faut ?
 
En fait, par exemple, quand je tape "beau", normalement un contact devrait s'afficher, et rien ne s'affiche, même pas la réponse "Aucun résultat".
 

Code :
  1. $sql="SELECT * FROM confidentielle_adresses WHERE nom LIKE '%$mot%' OR prenom LIKE '%$mot%' OR societe LIKE '%$mot%' OR fonction LIKE '%$mot%' ORDER BY nom";
  2. $result=mysql_query($sql);
  3. if (!mysql_fetch_array($result))
  4. {
  5. print <center>Aucun contact ne correspond à votre recherche...</center>";
  6. }
  7. while($resultat=mysql_fetch_array($result))
  8. { ?>
  9. <tr>
  10.  <td colspan="2" align="center" bgcolor="#314497" class="menu"><b><? echo $resultat[nom]; ?> <? echo $resultat[prenom]; ?><b></td>
  11. </tr>
  12. <? } ?>





A la place de !mysql_fetch_array($result) utilise plustôt mysql_num_rows($result)>0 .
Ainsi, t'auras ton message "Aucun résultat" d'affiché quand il trouve rien.
De plus, tu perdras plus le premier résultat de ta recherche.


Message édité par omega2 le 23-10-2002 à 12:26:38
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed