[SQL] Condition si requete vide
Résolu
finaldofus
Messages postés
2
Statut
Membre
-
finaldofus Messages postés 2 Statut Membre -
finaldofus Messages postés 2 Statut Membre -
Bonjour,
J'aimerais faire une condition pour différencier le cas où il y a ou pas une réponse à ma requête:
J'ai essayé if($ElmCom>0) et if(isset($ElmCom)) et if(!empty($ElmCom)) rien ne marche donc je dois pas viser au bon endroit...
Help me plz!
J'aimerais faire une condition pour différencier le cas où il y a ou pas une réponse à ma requête:
$data3 = mysql_query('SELECT * FROM soonc_commentaire WHERE lieu="'.$boite.'"');
while($ElmCom = mysql_fetch_array($data3)){
if($ElmCom){
// il y a au moins une réponse.
}else{
// il n'y a pas de réponse.
}
}
J'ai essayé if($ElmCom>0) et if(isset($ElmCom)) et if(!empty($ElmCom)) rien ne marche donc je dois pas viser au bon endroit...
Help me plz!
3 réponses
-
Valeurs de retour de mysql_query() prises dans le manual php
Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur. Pour les autres types de requêtes, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur. La ressource de résultat retournée doit être passée à la fonction mysql_fetch_array(), et les autres fonctions permettant d'explorer le résultat des tables, pour accéder aux données retournées. Utilisez mysql_num_rows() pour trouver le nombre de lignes retournées pour une requête du type SELECT ou mysql_affected_rows() pour trouver le nombre de lignes affectées par les requêtes du type DELETE, INSERT, REPLACE, ou UPDATE. mysql_query() échouera et retournera FALSE si l'utilisateur n'a pas les autorisations nécessaires pour accéder à la (aux) table(s) référencée(s) par la requête.
Donc, suivant la lancée de votre requête..
un :if ($data3) { // requête effectuée avec succès... Vrai! // Ensuite pour connaître le nombre d'enregistrement retourné : echo mysql_num_rows($data3); } else // Sinon { // message d'erreur / traitement dans le cas ou la requête n'a pas fonctionné }
Bonne journée,
JoomLiner -
Bonjour,
Remplacer
SELECT * FROM soonc_commentaire WHERE lieu="'.$boite.'"'
par
SELECT SQL_CALC_FOUND_ROWS * FROM soonc_commentaire WHERE lieu="'.$boite.'"'
et faire une seconde requête avant de traiter les données:
SELECT FOUND_ROWS();
Cette seconde requête renvoie le nombre de fiches trouvées sans avoir à traiter les données récupérées. S'il n'y a pas de données, on ne traite rien. Dans le cas contraire, on traite...
A+ -
Merci à vous deux.
J'ai choisis la première solution qui me parait plus simple:
if(mysql_num_rows($data3)){ while($ElmCom = mysql_fetch_array($data3)){ // 1 ou plusieurs réponse } }else{ // Pas de réponse }