Mysql_fetch_array(): supplied argument is not

Résolu
Bonjour, j'ai un problème dans ma requête SQL et j'ai l'erreur mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\MyBestAddressBook\extraction\extraction.php on line 24 et je ne comprends pas pourquoi vu que cela fonctionnait très bien vendredi.. :/

Voici mon ceode:
$connexion = mysql_connect("127.0.0.1", "root", "root") or die("Connexion impossible au serveur");
mysql_select_db("mbab-v3") or die("Connexion impossible a la base");
		 
$requete = "SELECT * 
                  FROM n_buzz
	          limit 0,10";
		  
$result = mysql_query($requete) or die("Erreur SQL : " . mysql_error());

while ($val = mysql_fetch_array($result)) 
{ 
   ...
}
Configuration: Windows XP
Firefox 3.0.17

10 réponses

  1. Bonjour

    Et tu n'as pas d'autre message d'erreur avant celui-là ?
    Avec le code que tu montres, tu devrais voir les messages des 'or die()' s'il y avait un problème dans ta connexion ou ta requête
    Vérifie que tu ne modifies pas $result à l'intérieur de ton while
    1. Cela est étrange. Je ne vois pas où peut-être le problème. Le seul truc que je vois est que tu ne prends pas les records depuis le début avec "LIMIT 0, 10" (de 1 à 11) tu voudrais peut-être faire ceci: "LIMIT 10"
      1. Si j'en crois le manuel de référence mysql, LIMIT 0,10 est exactement équivalent à LIMIT 10. La valeur du premier argument de LIMIT est 0 par défaut.
    2. Non je n'ai pas d'autres messages d'erreur:
      http://nsa11.casimages.com/img/2010/01/11/100111112949652209.jpg

      Dans mon while, je ne rappel pas ma variable $result donc je ne la modifie pas, bizarre quand même tout ça :/
      1. Voilà tout le code:
        <?php 
        
        // pour cahque buzz, créer 2 nouveaux fichiers (fr_id.xml et en_id.xml)
        
        $connexion = mysql_connect("127.0.0.1", "root", "root") or die("Connexion impossible au serveur");
        // $connexion_spip = mysql_connect($user, $password, "") or die("Connexion impossible au serveur spip");
        
        mysql_select_db("mbab-v3") or die("Connexion impossible a la base");
        		 
        $requete = "SELECT * 
                    FROM n_guide
        		    limit 0,5";
        		  
        echo $requete;		  
        $result = mysql_query($requete) or die("Erreur SQL : " . mysql_error());
        
        while ($val = mysql_fetch_array($result)) 
        { 
        	echo $val["g_lib_fr"]; 
        	
        	$id = $val["g_id"];
        	$image = "http://****.com/img/guide/guide-".$id.".jpg";
        	$imagelocale = "image/".$id.".jpg";	
        	$adresseFr = "GuideFr_".$id.".xml";
        	touch($adresseFr); 
        	$data="<buzz>";
        	$data=$data."<img>".$imagelocale."</img>";
        	$data=$data."<id>".$id."</id>";
        	// Partie francaise
        	$data=$data."<lib>".$val["g_lib_fr"]."</lib>";
        	$data=$data."<contenu>".$val["g_desc_fr"]."</contenu><br/>";
        	$data=$data."<categorie>".$val["g_cat"]."</categorie><br/>";
        	$data=$data."<ville>".$val["g_ville_fr"]."</ville><br/>";
        	$data=$data."<key1>".$val["g_tag1_fr"]."</key1><br/>";
        	$data=$data."<key2>".$val["g_tag2_fr"]."</key2><br/>";
        	$data=$data."<key3>".$val["g_tag3_fr"]."</key3><br/>";
        	$data=$data."<etat>".$val["g_etat"]."</etat><br/>";
        	$data=$data."<date>".$val["g_date"]."</date><br/>";
        	$data=$data."</buzz>";
        	
        	// Partie anglaise
        	$adresseEn = "GuideEn_".$id.".xml";
        	touch($adresseEn);
        	$data="<buzz>";
        	$data=$data."<lib>".$val["g_lib_en"]."</lib>";
        	$data=$data."<contenu>".$val["g_desc_en"]."</contenu>";
        	$data=$data."<ville>".$val["g_ville_en"]."</ville>";
        	$data=$data."<activite>".$val["g_activite_en"]."</activite>";
        	$data=$data."<tag1>".$val["g_tag1_en"]."</tag1>";
        	$data=$data."<tag2>".$val["g_tag2_en"]."</tag2>";
        	$data=$data."<tag3>".$val["g_tag2_en"]."</tag3>";
        	$data=$data."</buzz>";
        		
        	
        	$fp_fr=fopen($adresseFr,"w"); 
        	fwrite($fp_fr,$data);
        	fclose($fp_fr); 
        	
        	$fp_en=fopen($adresseEn,"w");
        	fwrite($fp_en,$data);
        	fclose($fp_en);
        	
        	touch($imagelocale);
        	$fp_img=fopen($imagelocale,"w"); 
        	/**	
        $handle = fopen($image, "rb");
        $contents = stream_get_contents($handle);
        //echo $contents;
        fwrite($fp_img,$contents);
        	fclose($fp_img); 
        	fclose($handle);
        	**/
         
         $titre_fr = $val["b_lib_fr"];
         $soutitre = "";
         $id_rubrique = 1;
         $descriptif = "";
         $texte_fr = $val["b_desc_fr"];
         $statut = "";
         $id_secteur = 1;
         $export = "";
         $langue = "";
         $langue_choisie = "";
         $nom_site = "";
         $url_site = "";
        
         /**
         // Partie injection
        $user = "root";
        $password = "root";
        $host = "127.0.0.1";
        
        $connexion = mysql_connect($host,$user, $password) or die("Connexion impossible au serveur");
        
        mysql_select_db("mbab-v3") or die("Connexion impossible a la base");
         
         $rec_insert = "INSERT INTO `spip`.`spip_articles` (
        `id_article` ,
        `surtitre` ,
        `titre` ,
        `soustitre` ,
        `id_rubrique` ,
        `descriptif` ,
        `chapo` ,
        `texte` ,
        `ps` ,
        `date` ,
        `statut` ,
        `id_secteur` ,
        `maj` ,
        `export` ,
        `date_redac` ,
        `visites` ,
        `referers` ,
        `popularite` ,
        `accepter_forum` ,
        `date_modif` ,
        `lang` ,
        `langue_choisie` ,
        `id_trad` ,
        `extra` ,
        `id_version` ,
        `nom_site` ,
        `url_site`
        )
        VALUES (
        NULL , '', '$titre_fr', '$soutitre', '$id_rubrique', '$descriptif', '', '$texte_fr', '', '0000-00-00 00:00:00', '$statut', '$id_secteur',
        CURRENT_TIMESTAMP , '$export', '0000-00-00 00:00:00', '0', '0', '0', '', '0000-00-00 00:00:00', '$langue', '$langue_choisie', '0', NULL , '0', '$nom_site', '$url_site'
        )";
        
         $result = mysql_query($rec_insert);
        **/ 
         }
         
        
        ?>
        
        
        
        1. J'ai deux fichiers, un pour le n_buzz et un autre pour le n_guide, les codes sont quasiment identiques mais ce qui est étrange ( je viens de m'en rendre compte :$ ), mon fichier avec le n_guide fonctionne.. xD

          Voilà le code pour n_buzz:

          <?php
          
          // pour cahque buzz, créer 2 nouveaux fichiers (fr_id.xml et en_id.xml)
          
          $connexion = mysql_connect("127.0.0.1", "root", "root") or die("Connexion impossible au serveur");
          mysql_select_db("mbab-v3") or die("Connexion impossible a la base");
          		 
          $requete = "SELECT * 
                             FROM n_buzz
          	           limit 5";
          		  
          $result = mysql_query($requete) or die("Erreur SQL : " . mysql_error());
          
          while ($val = mysql_fetch_array($result)) 
          { 
          	echo $val["b_lib_fr"]; 
          	
          	$id = $val["b_id"];
          	$image = "http://***.com/img/buzz/medium/".$id.".jpg";
          	$imagelocale = "image/".$id.".jpg";	
          	$adresseFr = "BuzzFr_".$id.".xml";
          	touch($adresseFr); 
          	$data="<buzz>";
          	$data=$data."<img>".$imagelocale."</img>";
          	$data=$data."<id>".$id."</id>";
          	// Partie francaise
          	$data=$data."<lib>".$val["b_lib_fr"]."</lib>";
          	$data=$data."<contenu>".$val["b_desc_fr"]."</contenu><br/>";
          	$data=$data."<categorie>".$val["b_cat"]."</categorie><br/>";
          	$data=$data."<ville>".$val["b_ville_fr"]."</ville><br/>";
          	$data=$data."<activite>".$val["b_activite_fr"]."</activite><br/>";
          	$data=$data."<addresse_id>".$val["b_ad_id"]."</addresse_id><br/>";
          	$data=$data."<manuel_addresse>".$val["b_manuel_ad"]."</manuel_addresse><br/>";
          	$data=$data."<manuel_telephone>".$val["b_manuel_tel"]."</manuel_telephone><br/>";
          	$data=$data."<manuel_web>".$val["b_manuel_web"]."</manuel_web><br/>";
          	$data=$data."<tag1>".$val["b_tag1_fr"]."</tag1><br/>";
          	$data=$data."<tag2>".$val["b_tag2_fr"]."</tag2><br/>";
          	$data=$data."<tag3>".$val["b_tag3_fr"]."</tag3><br/>";
          	$data=$data."<newsFlash>".$val["b_newsFlash"]."</newsFlash><br/>";
          	$data=$data."<etat>".$val["b_etat"]."</etat><br/>";
          	$data=$data."<date>".$val["b_date"]."</date><br/>";
          	$data=$data."</buzz>";
          
          	$fp_fr=fopen($adresseFr,"w"); 
          	fwrite($fp_fr,$data);
          	fclose($fp_fr); 	
          
          
          	// Partie anglaise
          	$adresseEn = "BuzzEn_".$id.".xml";
          	touch($adresseEn);
          	$data="<buzz>";
          	$data=$data."<lib>".$val["b_lib_en"]."</lib>";
          	$data=$data."<contenu>".$val["b_desc_en"]."</contenu>";
          	$data=$data."<ville>".$val["b_ville_en"]."</ville>";
          	$data=$data."<activite>".$val["b_activite_en"]."</activite>";
          	$data=$data."<tag1>".$val["b_tag1_en"]."</tag1>";
          	$data=$data."<tag2>".$val["b_tag1_en2"]."</tag2>";
          	$data=$data."<tag3>".$val["b_tag1_en3"]."</tag3>";
          	$data=$data."</buzz>";
          		
          	$fp_en=fopen($adresseEn,"w");
          	fwrite($fp_en,$data);
          	fclose($fp_en);
          	
          	touch($imagelocale);
          	$fp_img=fopen($imagelocale,"w"); 
          
           
           }
           ?>
          
          1. dans cette capture d'écran (http://nsa11.casimages.com/img/2010/01/11/100111112949652209.jpg) que tu nous montres, il y a qqchose d'étrange à la 1ère ligne: "Exposition Cobra" kesoko? keske ça fout là?
            1. J'ai fais un echo d'un des trucs de la table dans le while donc à chaque passage, ca affiche le lib.

              J'ai résolu mon problème =D

              En fait, comme un mauvais (comme toujours), j'avais oublié de commenter certaines partie du code plus bas que mon while xD

              Merci :)