Mysql_fetch_array(): supplied argument is not

Résolu
Absot Messages postés 819 Statut Membre -  
UgglyBoy Messages postés 440 Statut Membre -
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. le père
     
    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
    0
  2. UgglyBoy Messages postés 440 Statut Membre 66
     
    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"
    0
    1. le père
       
      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.
      0
      1. UgglyBoy Messages postés 440 Statut Membre 66 > le père
         
        C'est fort probable... mais je trouvais leur explication pas très claire: "SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15" à la page (https://dev.mysql.com/doc/refman/8.0/en/select.html
        0
  3. Absot Messages postés 819 Statut Membre 44
     
    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 :/
    0
  4. le père
     
    Très étrange en effet...
    Peux-tu donner le code complet ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Absot Messages postés 819 Statut Membre 44
     
    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);
    **/ 
     }
     
    
    ?>
    
    
    
    0
  7. UgglyBoy Messages postés 440 Statut Membre 66
     
    tu selectionnes sur la table n_buzz ou n_guide ?
    0
  8. Absot Messages postés 819 Statut Membre 44
     
    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"); 
    
     
     }
     ?>
    
    0
  9. UgglyBoy Messages postés 440 Statut Membre 66
     
    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à?
    0
  10. Absot Messages postés 819 Statut Membre 44
     
    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 :)
    0
  11. UgglyBoy Messages postés 440 Statut Membre 66
     
    Ok bon suite... tu marques le sujet étant résolut?
    0