Administrateur PHPfrance |
13231 Messages
17 déc. 2007, 23:45
Quand une requête SQL se trouvant dans un code PHP ne fonctionne pas correctement, on commence
toujours par exécuter la requête SQL seule (dans PhpMyAdmin par exemple). Il se pourrait qu'elle ne retourne aucun résultat.
Si cette requête seule fonctionne correctement, on contrôle le retour de la requête. A ce niveau, il y a plusieurs choses à regarder :
_Tu ne contrôle pas l'exécution de ta requête. Si elle a échoué, $sql contient false
_Tu ne contrôle pas que la requête ai retourné au moins un résultat. Pour cela, soit tu vérifies le nombre de ligne retourné avec mysql_num_rows($sql) (qui va te retourner le nombre de ligne sélectionnées dans ta requête), soit tu mets en place un while() qui va te parcourir les éventuelles plusieurs lignes retournées.
Un exemple de correction serait le suivant :
<?php
include 'connexion.php';
// Il est mieux de sortir les requêtes pour pouvoir les afficher simplement
$str_requete = "SELECT jour FROM calendar";
$sql = mysql_query( $str_requete );
if( $sql === false ) {
echo "Erreur lors de l'exécution de la requête";
} else {
// Si la requête n'a retournée aucune ligne
if( mysql_num_rows($sql) == 0 ) {
echo "La requête n'a retournée aucune ligne";
} else {
// Récupération de la ligne
$donnees = mysql_fetch_assoc($sql);
// Affichage des données
?>
<br>
<center><img src="image/calenjour.jpg"> <strong><font color="#000000" face="Book Antiqua"><?php echo $donnees['jour']; ?>
<?php
}
}
?>