par
zeus » 24 janv. 2008, 20:43
Quand tu exécutes une requete SQL, il est possible que cette exécution échoue.
Dans ce cas, la fonction mysql_query() retourne FALSE.
Si tu ne contrôles pas que la requête se soit correctement exécuter, le code va continuer à s'exécuter jusqu'au mysql_fetch_array(). La variable que tu passes en paramètres à cette fonction contenant FALSE, tu vas avoir une grosse erreur PHP.
Sachant que le but de tout programme est avant tous de ne jamais planter, il faut que tu contrôle le retour de l'exécution de ta requête.
La manière la plus simple de la contrôler est de mettre un "or die(mysql_error())" après le mysql_query(), ce qui aura pour effet d'arrêter l'exécution de ton code (travail du die()) en affichant le message d'erreur retourné par l'exécution de la requête (travail du mysql_error())
Exemple :
$str_requete = "SELECT champ1, champ2 FROM maTable";
$result = mysql_query($str_requete) or die( mysql_error() );
Cette solution est la plus simple, mais la moins conseillée car elle arrête l'exécution du script et affiche le message d'erreur.
Je te conseillerais donc une autre solution : contrôler que le retour de l'exécution n'est pas FALSE ou afficher un message d'excuse.
Exemple :
$str_requete = "SELECT champ1, champ2 FROM maTable";
$result = mysql_query($str_requete);
// NOTE : !== contrôle l'égalité et le type
if( $result !== false )
{
// Traitement normal
}
else
{
echo "Une erreur est survenue. Veuillez réessayer dans quelques instants ou contacter un administrateur du site";
}
J'espère que j'ai été assez clair dans mes explications. En cas de doute, n'hésites pas à reposer des question, nous nous ferons un plaisir de t'aider à comprendre.
En tout cas, sache que si tu veux apprendre à développer des application web propres, il y a beaucoup à approfondir dans ce domaine et ce que je viens de t'expliquer ne représente que les 2 premières marches

Quand tu exécutes une requete SQL, il est possible que cette exécution échoue.
Dans ce cas, la fonction mysql_query() retourne FALSE.
Si tu ne contrôles pas que la requête se soit correctement exécuter, le code va continuer à s'exécuter jusqu'au mysql_fetch_array(). La variable que tu passes en paramètres à cette fonction contenant FALSE, tu vas avoir une grosse erreur PHP.
Sachant que le but de tout programme est avant tous de ne jamais planter, il faut que tu contrôle le retour de l'exécution de ta requête.
La manière la plus simple de la contrôler est de mettre un "or die(mysql_error())" après le mysql_query(), ce qui aura pour effet d'arrêter l'exécution de ton code (travail du die()) en affichant le message d'erreur retourné par l'exécution de la requête (travail du mysql_error())
Exemple :
[php]$str_requete = "SELECT champ1, champ2 FROM maTable";
$result = mysql_query($str_requete) or die( mysql_error() );[/php]
Cette solution est la plus simple, mais la moins conseillée car elle arrête l'exécution du script et affiche le message d'erreur.
Je te conseillerais donc une autre solution : contrôler que le retour de l'exécution n'est pas FALSE ou afficher un message d'excuse.
Exemple :
[php]$str_requete = "SELECT champ1, champ2 FROM maTable";
$result = mysql_query($str_requete);
// NOTE : !== contrôle l'égalité et le type
if( $result !== false )
{
// Traitement normal
}
else
{
echo "Une erreur est survenue. Veuillez réessayer dans quelques instants ou contacter un administrateur du site";
}[/php]
J'espère que j'ai été assez clair dans mes explications. En cas de doute, n'hésites pas à reposer des question, nous nous ferons un plaisir de t'aider à comprendre.
En tout cas, sache que si tu veux apprendre à développer des application web propres, il y a beaucoup à approfondir dans ce domaine et ce que je viens de t'expliquer ne représente que les 2 premières marches ;)