Erreur Warning: mysql_fetch_array() expects ....

Résolu/Fermé
silver9195 - 5 mars 2014 à 12:36
 silver9195 - 5 mars 2014 à 17:34
Bonjour,


Je ne connais pas le code et j'ai un message d'erreur qui est : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /web/csasoftwargame/travian/GameEngine/Database/db_MYSQL.php on line 702

Voici mon code à la ligne en question :
    	function getMInfo($id) {
$q = "SELECT * FROM " . TB_PREFIX . "wdata left JOIN " . TB_PREFIX . "vdata ON " . TB_PREFIX . "vdata.wref = " . TB_PREFIX . "wdata.id where " . TB_PREFIX . "wdata.id = $id";
$result = mysql_query($q, $this->connection);
return mysql_fetch_array($result);
}

Merci de votre aide mon serveur est HS pour l'instant ....

4 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
5 mars 2014 à 13:24
Bonjour,

Pour info, mysql_fetch_array nécessite un résultat SQL en paramètre.
Or mysql_query renvoie un résultat SQL... ou le booléen FALSE en cas d'erreur.
Ton message d'erreur est clair : mysql_query a renvoyé FALSE.

Le mieux pour comprendre l'erreur est d'utiliser la fonction mysql_error(), qui affiche la dernière erreur rencontrée.
Par exemple comme ceci :
$result = mysql_query($q, $this->connection) or die("Erreur SQL dans la requête <br/>$q<br/>" . mysql_error());


Xavier
2
Jiji_19 Messages postés 30 Date d'inscription lundi 10 février 2014 Statut Membre Dernière intervention 12 novembre 2014 1
5 mars 2014 à 12:48
tu as utilisé ça, ( . TB_PREFIX . ); si vous ne précisez pas le non de la table dans ta requête et tu préfères la récupérer ailleur, il faut préciser que TB_PREFIX est une variable.
donc remplace TB_PREFIX par $TB_PREFIX.
mais il faut assurer ke tu pe récupérer la valeur de $TB_PREFIX quelque part
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
5 mars 2014 à 13:25
TB_PREFIX est manifestement une constante et ne nécessite pas le signe des variables $.
Après, c'est sûr qu'il vaut mieux vérifier qu'elle est correctement définie... Mais je pense qu'il y aurait une autre erreur si tel n'était pas le cas.
0
Merci à tous l'erreur semble résolu, seulement cela à recommencer en mettant $result = mysql_query($q, $this->connection) or die("Erreur SQL dans la requête <br/>$q<br/>" . mysql_error());
il m'indique une erreur de syntaxe
0
C'est très étrange cela ce produit pas tout le temps mais quand c'est le cas je suis bloqué ....
0
Voici le message complet :

"?Erreur SQL dans la requête
SELECT * FROM s1_wdata left JOIN s1_vdata ON s1_vdata.wref = s1_wdata.id where s1_wdata.id =
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1"
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
5 mars 2014 à 15:28
Dans ton message d'erreur, regarde bien la requête : il manque la fin !
Tout simplement parce que $id doit être vide...

Du coup, tu devrais faire une petite vérif du contenu de cette variable.
0
C'est bon si je redémarre mon serveur il n'y a plus le soucis...


merci
0