Condition, si la requete sql n'affiche rien - PHP - Programmation
Marsh Posté le 03-06-2010 à 17:55:40
mysql_num_rows() permet de récupérer le nombre de résultats de ton mysql_query().
Marsh Posté le 03-06-2010 à 17:57:31
Ok et comment je pourrais utiliser cela ? ( je début en php ... )
Marsh Posté le 03-06-2010 à 18:29:59
http://php.net/manual/fr/function.mysql-num-rows.php
Premier exemple, on ne peut pas mieux te l'expliquer.
Marsh Posté le 03-06-2010 à 18:35:35
mysql_num_rows() renvoie directement le nombre de résultats (0 si la requête ne renvoie rien). Après, la doc PHP est là pour ça, ce n'est pas une fonction complexe.
Marsh Posté le 03-06-2010 à 20:28:12
Merci de vos consei je vien d'essayer :
if ( 0 == $num_rows )
{
echo " Erreur";
}
Mais ca ne marche pas, pourtant j'ai fait un écho de la variable $num_rows el correspond bien a 0, j'ai essayer cette condition en remplacant 0 par 3, quand num_rows est égale a 3, la condition marche ...
Pouvez vous m'aider ?
Marsh Posté le 04-06-2010 à 09:03:59
if(mysql_num_rows==0)echo"nada";
else{ // tu affiches
}
Marsh Posté le 20-06-2010 à 17:57:42
Bonjour, j'ai suivi avec interet la discussion car j'ai un problème similaire peut-être un poil plus complexe avec la syntaxe.
Pareillement que kka4, je veux tester les conditions d'affichage d'une requete mais selon d'autres parametres déjà inclus dans un autre IF supérieur.
Les explications étant un poil chiantes un bout de code permettra de mieux visualiser ^^
Code :
|
Si quelqu'un a une solution cela serait génial, par avance merci de votre aide ou au moins d'avoir lu ce post
Bonne journée
Marsh Posté le 21-06-2010 à 09:08:50
mysql_num_rows attend un paramètre : le dataset retourné par mysql.
typiquement
$query = "SELECT ...."
$dataset = mysql_query($query);
$nb_lignes = mysql_num_rows($dataset);
Marsh Posté le 21-06-2010 à 13:51:07
Hum j'ai testé ceci
Code :
|
Sans succès, peut-être que j'ai fais une erreur autre part, je mets tout le code concerné afin de visualiser l'ensemble :
Code :
|
Si jamais vous avez une idée je suis preneur, n'hésitez pas à demander si ce n'est pas clair.
Merci d'avance, bonne journée
Marsh Posté le 21-06-2010 à 17:46:24
Est-ce que déjà ta requête renvoie des données ? Si non, ça ne peut pas marcher au niveau du mysql_num_rows(). Et que font les paranthèses autour de ta requête ?
P.S. : c'est pas conseillé d'afficher ta requête complète en cas d'erreur.
Marsh Posté le 22-06-2010 à 09:28:04
Oui elle envoie des données, mais justement je veux filtrer le fait que s'il n'y ait pas de données renvoyées pour la 2e condition et seulement celle là alors un autre if sous adjacent permette de continuer mon code. Pour ce qui est des parenthèses tout simplement un noobisme de ma part, j'ai débuté le php/sql il y'a seulement un mois mais il y'a encore des cas (celui-là par exemple) que je ne maitrise pas
Marsh Posté le 22-06-2010 à 15:27:17
Regarde ce que renvoie ton mysql_num_rows() en ajoutant un echo de $nb_result pour voir sa valeur.
Marsh Posté le 23-06-2010 à 10:22:58
Il n'affiche rien quand je n'ai pas de champs remplissant la condition ce qui semble normal vu qu'il ignore le block IF en entier.
Par contre si je rajoute un champ répondant au condition alors la fonction mysql_num_row affiche une erreur. Si je l'enlève et que je remplace par un echo tout simple j'ai bien un affichage.
Comment spécifier que mysql_num_row ne doit considerer la requete que ce pour ce IF précis? Faut-il que j'alourdisse le code en répétant la requete aussi souvent qu'il y'a un IF ?
Marsh Posté le 03-06-2010 à 17:52:13
Oyé, oyé. Population du forum HARDWARE, je réclame votre aide.
J'essaye de crée une condition qui afficherais une sorte de message d'erreur lorsque la condition est remplie.
La condition que je voudrais faire est en gros : Si la requête exécuté n'affiche rien, alors --> afficher message d'erreur.
Voici la requete : $sql = "SELECT action.intitule, agent.prenom, agent.nom, agent.code, inscription.presence FROM session,agent,inscription,action WHERE codeAgent='" . $code . "'
AND session.codeAction = action.code AND session.numero = inscription.numeroSession AND inscription.codeAgent = agent.code;";
C'est une requête qui permet d'afficher a quel session a participé un agent, lors que l'on rentre son code agent. Tout fonctionne sauf quand un agent n'a jamais participer à une session. Quand c'est le cas la page n'affiche rien, c'est pourquoi j'ai besoin de la condition.
Voila la condition : if ( $sql == NULL )
{
echo " Cet agent n'a participé à aucune session.";
}
Mais elle ne marche évidemment pas. Pouvez-vous me donner un petit coup de main ? C'est pour mon Projet, pour mon oral de bac.