Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous
Je sais pas si la question a deja été posé mais je tente ma chance.
J'ai systématiquement ce message d'erreur qui s'affiche en haut de mon forum.
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home2/noshost/public_html/etat_up.php on line 9
Quand je vais voir ou se situe le problème, je ne sais pas quoi modifier pour ne plus avoir ce problème....
Merci à tous ceux qui pourront m'aider 
Voici le code que j'ai :
<?php
if ($pun_user['g_id'] < PUN_GUEST)
{
$id_forum = explode (",",$quotat_config['mod_quotat_forums']);
if((in_array ($cur_topic['forum_id'], $id_forum)) && ($cur_topic['sticky']!='1') && ($quotat_config['mod_etat_enabled'] == '1'))
{
$poster_name = mysql_fetch_row($db->query('SELECT username FROM '.$db->prefix.'users WHERE id="'.$pun_user['id'].'"'));
$result = $db->query('SELECT taille_up FROM '.$db->prefix.'topics WHERE id='.$id) or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
$taille_up = $db->result($result);
$result = $db->query('SELECT total_up FROM '.$db->prefix.'users WHERE id='.$pun_user['id']) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
$total_up = $db->result($result);Hors ligne
Bonjour,
Pourquoi deux syntaxes différentes sur deux lignes différentes :
WHERE id="'.$pun_user['id'].'"'et
WHERE id='.$pun_user['id']D'autre part, comme le dit le message d'erreur, le résultat de
$poster_name = mysql_fetch_row($db->query('SELECT username FROM '.$db->prefix.'users WHERE id="'.$pun_user['id'].'"'));n'est pas une ressource correcte.
Il faut procéder en deux temps :
D'abord récupérer la « ressource » résultat
$result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE id="'.$pun_user['id'].'"')Puis extraire la première « rangée » de résultats de la ressource et, comme il ne doit y avoir qu'un seul résultat, on peut faire :
$poster_name = $db->result($result);Sinon, avec plusieurs résultats dans la rangée, il aurait fallu décomposer en deux autres temps :
$row = $db->fetch_row($result);
$poster_name = $row[0];Il aurait aussi fallu vérifier qu'on a bien au moins un résultat avec :
$count = $db->num_rows($result);et agir en conséquence.
Dernière modification par Otomatic (10-05-2009 13:47:51)
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Oki, je vais modifier ceci alors, je vous tiens au courant si le problème est résolu 
Hors ligne
Bon, j'ai essayer la méthode que tu m'as indiquer alors....
- Ou c'est moi qui n'est pas compris questce qu'il fallait changer
- Ou la méthode indiquer ne fonctionne pas....
Estce que quelqu'un pourrait m'indiquer précisément quoi remplacé par quoi ?
Merci
Hors ligne
Remplacer
$poster_name = mysql_fetch_row($db->query('SELECT username FROM '.$db->prefix.'users WHERE id="'.$pun_user['id'].'"'));par
$result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE id='.$pun_user['id']);
$poster_name = $db->result($result);Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Oki, sa fonctionne 
Merci Otomatic d'avoir été si patient avec moi
Faut dire que je débute dans ce domaine 
Merci encore 
Dernière modification par NoS!rp (11-05-2009 10:37:07)
Hors ligne
Bonjour,
C'est peut-être pas la peine de réinventer l'eau chaude et d'aller extraire de la base de données quelque chose qui existe sous forme de variable puisque déjà extrait lors de l'identification.
C'est-à-dire que :
$result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE id='.$pun_user['id']);
$poster_name = $db->result($result);Devrait pouvoir être remplacé par :
$poster_name = $pun_user['username'];Ou même simplement utiliser $pun_user['username'] à la place $poster_name.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Cette méthode fonctionne aussi, je viens à l'instant de la testée. Merci pour ton aide Otomatic
Hors ligne
Pages : 1