Page 1 sur 1

Afficher un message si mysql ne renvoie rien

Posté : 06 juin 2009, 19:29
par SinBert
Bonjour,

J'ai un petit site ou il y a un champ de recherche. (pas de problème jusque là :lol: )

Je vais donc interroger ma BDD pour savoir si un des mots tapés dans le champ de recherche correspond.
Si oui, elle me renvoie ce que je veux, il n'y a pas de problème ; mais si c'est non, elle ne me renvoie rien (donc n'affiche rien) se qui est un peut laid pour les visiteurs.

Ma question :
Comment faire pour vérifier le contenu de se que mysql me renvoie pour afficher un message au visiteurs si c'est vide?

Merci d'avance!

PS : j'ai déjà essayé avec ceci :
if(empty($reponse)){echo '  Il n\' y a pas de $rech_user dans le classement... '; }
En sachant que $reponse est ma requête sql, ceci n'a rien donné.

Posté : 06 juin 2009, 20:38
par Ryle
Tu as plusieurs solutions... mysql_num_rows() te donnera le nombre d'enregistrements retournés par ta requête, tu peux ainsi savoir si tu as des résultats ou pas.
Tu peux aussi tout bêtement coller un flag (un compteur, une variable dont tu changes la valeur ou n'importe quoi d'autre) dans la boucle que tu fais pour afficher tes résultats... Il suffit ensuite de tester cette variable et afficher un message d'infos si aucun résultat n'est trouvé :)

Posté : 06 juin 2009, 21:29
par SinBert
Effectivement, je n'y avais pas pensé.

Donc, j'ai créer la variable $flag et je l'est égalée a 0.

A la fin de ma boucle, j'ai fait :
$flag++;
Ce qui va ajouté 1 à $flag

j'ai donc testé la valeur de $flag a la fin de mon code :
if($flag = 0){ echo ' il n\'y a pas de $rech_user dans le classement '; }
Bizarrement, rien ne s'affiche même si je tape une entrée n'existant pas dans ma BDD.

Une erreur quelque part?
La boucle se lit même s'il n'y a pas de valeur retournée par ma requête?
Si oui, comment faire?

Merci!

Posté : 06 juin 2009, 22:13
par Ryle
L'opérateur de comparaison en php est " == " et pas " = " qui sert à l'affectation :)

En fait, tu affectes la valeur 0 à ta variable $flag dans ton if(), du coup php interprète ce zéro comme une valeur false et n'affiche pas le message :)

Posté : 06 juin 2009, 22:27
par SinBert
Sa marche à la perfection maintenant!

Merci beaucoup à toi!

PS : résolu.