Anonymus
dimanche 25 avril 2004 à 15:43
CITATION(pitidev @ dimanche 25 avril 2004, 15:18)
pour info, certaines fonctions mysql renvoient une erreur si ton recordset a 0 enregistrements ... donc bien penser a ce que tu ais un nombre d'enregistrements >0 avant de faire plus de traitement
Attention, ce n'est pas la fonction qui renvoie une erreur, mais la facon dont le script est construit, et une incompréhension du langage. php gère les variables à la volée, autrement dit, il n'est pas besoin de déclarer un type à une variable, et il n'y a meme pas besoin de la définir. Exemple :
<?
echo $a;
?>
On ne connais pas la valeur de $a, et on ne connais meme pas son type (booléen, integer, string, etc..).
Donc : on fait une requète sql, qui renvoie 0 (zéro) champs. Et on teste le nombre de champs :
if ( zero ) alors .....
Mais pour php, les données 0, FALSE, ERROR, et NON DEFINI c'est du pareil au même.
L'erreur vient donc du fait que la personne teste le nombre de champs, et oublie que php peut renvoyer FALSE, ou ERROR. PHP continue donc, en pensant avoir un nombre de champs égal à zéro, alors que le programme renvoyait peut etre une erreur due à une non-connection à la base de données.
Voilà.
Anonymus.