par
Hywan » 26 avr. 2008, 00:06
Hey

,
Au pif je dirais que la fonction mysqli_result retourne une ressource si elle peut exécuter le code (une requête ?) correctement, et false sinon, donc dans le cas d'une erreur.
Comme après, tu utilises le résultat de mysqli_result dans un mysqli_fetch_array puis mysqli_free_result et que ces fonctions ne prennent en paramètre qu'une ressource et qu'on donne un booléen, on a étrangement une erreur.
Il faut donc que tu gères les erreurs provenant de ta fonction mysqli_result. Une piste :
// Exemple classique.
$result = @mysqli_result( ... ) or die('Mon erreur');
while($row = mysqli_fetch_array($result))
...
// Exemple avec des erreurs plus propres en PHP 4.
if(false === $result = @mysqli_result( ... ))
return trigger_error('Mon erreur', E_USER_ERROR);
while($row ...)
// Exemple avec des exceptions (solutions la plus optimale et la plus propre) en PHP 5.
if(false === $result = @mysqli_result( ... ))
throw new Exception('Mon erreur.');
while($row ...)
Est-ce que tout ceci est du chinois ou est-ce que ça te parle ?
Tu noteras que je n'ai fais que traduire l'erreur que tu as. La fonction mysqli_fetch_array attend un paramètre qui doit être mysqli_result, et que tu as donné un booléen. Mais dans quel cas a-t-on un booléen ? Hmm,
peut-être qu'un tour dans le manuel saura nous éclaircir non ? Et paf :
Valeurs de retour
Le contenu d'un champ depuis un jeu de résultats MySQL en cas de succès, ou FALSE si une erreur survient.