par
Ryle » 21 janv. 2009, 15:22
Euh... mysql_query() exécute justement la requête.....
Le problème ne vient absolument pas de là, mais de ton test qui est "mal placé".
En fait, si ta requête ne retourne pas de résultat, la commande mysql_fetch_array() va retourner la valeur FALSE et tu n'entreras pas dans le while (puisqu'aucun élément sur lesquels boucler). PHP ne va donc pas tester le if() et donc encore moins t'afficher le else.
Si ton traitement ne concerne qu'un seul enregistrement, il ne faut pas utiliser la structure while (aucun intérêt de boucler pour un seul élément) et un simple if te permet de vérifier s'il y a des résultats :
$req = mysql_query( " SELECT time FROM table " ) or die ( mysql_error() );
if ( $res = mysql_fetch_array($req) ) { // s'il y a un résultat ou plus, le premier est stocké dans $res
// tu peux ainsi faire ton traitement dessus
}
else { // aucun résultat retourné par la requête
echo 'table vide';
}
Euh... mysql_query() exécute justement la requête.....
Le problème ne vient absolument pas de là, mais de ton test qui est "mal placé".
En fait, si ta requête ne retourne pas de résultat, la commande mysql_fetch_array() va retourner la valeur FALSE et tu n'entreras pas dans le while (puisqu'aucun élément sur lesquels boucler). PHP ne va donc pas tester le if() et donc encore moins t'afficher le else.
Si ton traitement ne concerne qu'un seul enregistrement, il ne faut pas utiliser la structure while (aucun intérêt de boucler pour un seul élément) et un simple if te permet de vérifier s'il y a des résultats :
[php]$req = mysql_query( " SELECT time FROM table " ) or die ( mysql_error() );
if ( $res = mysql_fetch_array($req) ) { // s'il y a un résultat ou plus, le premier est stocké dans $res
// tu peux ainsi faire ton traitement dessus
}
else { // aucun résultat retourné par la requête
echo 'table vide';
}[/php]