Afficher un message si mysql ne renvoie rien

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher un message si mysql ne renvoie rien

par SinBert » 06 juin 2009, 22:27

Sa marche à la perfection maintenant!

Merci beaucoup à toi!

PS : résolu.

par Ryle » 06 juin 2009, 22:13

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 :)

par SinBert » 06 juin 2009, 21:29

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!

par Ryle » 06 juin 2009, 20:38

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é :)

Afficher un message si mysql ne renvoie rien

par SinBert » 06 juin 2009, 19:29

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é.