Erreur Warning: mysql_fetch_array() expects ....

Résolu
silver9195 -  
 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

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    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
  2. Jiji_19 Messages postés 30 Statut Membre 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
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      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
  3. silver9195
     
    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
  4. silver9195
     
    C'est très étrange cela ce produit pas tout le temps mais quand c'est le cas je suis bloqué ....
    0
    1. silver9195
       
      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
    2. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      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
    3. silver9195
       
      C'est bon si je redémarre mon serveur il n'y a plus le soucis...


      merci
      0