Warning: mysql_fetch_array(): supplied argument is not ....

Eléphant du PHP | 59 Messages

02 janv. 2007, 06:42

Bonjour,

Je me retrouve confronté à l'erreur suivante :
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in XXXXXXXXXXXX/www/expertis/vehicules.php on line 37
"
Je ne vois pas trop ce qui cloche surtout que ca fonctionne en local je suis donc passé en mode debug sur le serveur j'ai le message ci dessus :

voici le code que j'utilise pour vehicules.php

Code : Tout sélectionner

<?php $table = "expertis_vehicules"; // set the level of error reporting ini_set("error_reporting", E_ALL); ini_set("display_errors","1"); // masque ou afficahe les erreurs ini_set("ignore_repeated_errors","0"); // evite la repetition des mm erreurs dans les logs // Connexion à la base MySQL mysql_connect("localhost","XXXX",""); mysql_select_db("XXXXX"); switch($q=$_GET["q"]) { case "1": // Liste des modeles $query = "SELECT DISTINCT modele FROM $table" . " WHERE marque = '".$_POST["champ"]."' ORDER BY 1"; case "2": // Liste des types if(!$query) $query = "SELECT type,id_vehicule FROM $table" . " WHERE modele = '".$_POST["champ"]."' ORDER BY 1"; echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; if($q<2) echo 's.options[s.options.length] = new Option("Choisir","");'; $result = mysql_query($query); while($r = mysql_fetch_array($result)) echo 's.options[s.options.length] = new Option("'.$r[0].'","'.((@$r[1])?$r[1]:$r[0]).'");'; echo 'update('.$q.');'; break; default: // Liste des marques $liste_dpt = ""; $SQL = "SELECT DISTINCT marque FROM $table ORDER BY 1"; $res = mysql_query($SQL); while($val = mysql_fetch_array($res)) $liste_dpt .= "<option value=\"".$val[0]."\">".$val[0]."</option>\n"; // type d'après l'id_vehicule if($adresse["id_vehicule"]) { $SQL = "SELECT type FROM $table WHERE id_vehicule='".$adresse["id_vehicule"]."'"; $res = mysql_query($SQL); $adresse["type"] = mysql_result($res,0,0); } } @mysql_close(); ?>
Apparement le pb viendrait de
$SQL
? mais je ne vois pas ce qui cloche

Je suis un peu perdu la. Je viens de passer la nuit dessus. Ca serait vraiment sympa si qqn avait la solution.

Je vous remercie par avance

HD
Mammouth du PHP | 1181 Messages

02 janv. 2007, 06:53

à mon avis ca viendrait de $res :?
un
print_r($res);
donne quoi?
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Mammouth du PHP | 1885 Messages

02 janv. 2007, 07:06

Ça affichera surement FALSE;

Essaie ceci pour vérifier s'il y a des erreurs SQL:
$res = mysql_query($SQL) or die( mysql_error() );
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 59 Messages

02 janv. 2007, 07:09

Merci pour les réponses :
nouvelle erreur : l36

Code : Tout sélectionner

while($val = mysql_fetch_array($res))
apparement c'est cette ligne qui pose pb sur le serveur. mais ce que je ne comprends pas c'est pourquoi sur mon serveur en local tout fonctionne correctement

Il n'y a pas d'erreur renvoyée en modifiant la ligne de commande mis a part celle précedement citée :s
je commence à désespérer l'heure tourne et je patoge

Mammouth du PHP | 1885 Messages

02 janv. 2007, 07:13

Est-ce que une erreur est affichée si tu modifies pour ça?
mysql_query($SQL) or die( mysql_error() );
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 59 Messages

02 janv. 2007, 07:20

Merci j'avais l'erreur m'indiquant que la base expertis_vehicules n'existait pas. Forcément je ne l'avais pas importée sur mon serveur distant c'est pour cela que ca marchait en local. Merci beaucoup pour ton aide. Bonne journée, ou bonne nuit :) merci encore