Erreur Warning: mysql_fetch_array() expects ....

[Résolu/Fermé]
Signaler
-
 silver9195 -
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

Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 002
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
30
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
12 novembre 2014
1
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
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 002
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.
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
C'est très étrange cela ce produit pas tout le temps mais quand c'est le cas je suis bloqué ....
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"
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 002
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.
C'est bon si je redémarre mon serveur il n'y a plus le soucis...


merci