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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Warning: mysql_fetch_array(): supplied argument is not a ...

par dark_vidor » 12 mars 2005, 12:43

en fait il suffisait de mettre la req dans la boucle for :? ...

par Damien » 12 mars 2005, 10:42

Le premier code ne peut pas fonctionner, tu envoie la requete avant ta boucle.

Utilises le code de Elien en remplacant $i par une valeur.

Exemple :
// on envoie une requete qui selectionne les 20 premiers enregistrements
$sql = "SELECT * FROM joueurs ORDER BY num_C DESC LIMIT 20,0";
$req = mysql_query($sql);
// $req est un pointeur qui va permettre d'accéder aux valeurs avec une fonction mysql_fetch_*

// parcours du tableau de résultats
while($ligne = mysql_fetch_array($req)) {
   $id = $ligne["id"];
   $email = $ligne["email"];
}
Si tu ne comprends pas ce que retourne mysql_fetch_array (je te conseille même plutot d'utilise mysql_fetch_assoc), essaies ce code :
$sql = "SELECT * FROM joueurs ORDER BY num_C DESC LIMIT 20,0";
$req = mysql_query($sql);

echo '<h1>mysql_fetch_array</h1><pre>';
var_dump(mysql_fetch_array($req));
echo '</pre><hr>';
echo '<h1>mysql_fetch_assoc</h1><pre>';
var_dump(mysql_fetch_assoc($req));
echo '</pre><hr>';
echo '<h1>mysql_fetch_row</h1><pre>';
var_dump(mysql_fetch_row($req));
echo '</pre>';

par dark_vidor » 12 mars 2005, 10:11

oui et j'ai tester le echo dans phpadmin et ça m'affiche une ligne ... :roll: c'est pk je comprend pas que la requete mysql_fetch_array ne fonctionne pas :cry:

par Elie » 12 mars 2005, 02:41

Je ne suis pas sûr de ce que je vais dire , mais à mon avis ( j'ai pas vérifié ) si ta variable $i est > 1 ( imaginons $i == 2 ) , ça ferais "LIMIT 2,1" ... et p-e que ton erreur vient de là , p-e que mysql ne gère pas LIMIT 2,1 , mais seulement LIMIT 1,2

Je répète , ce n'est qu'une hypothèse , je n'ai rien vérifié

Sinon , c'est soit qu'il y a une faute sur le nom de ta table "joueurs" , soit sur le nom de ton champ "num_C"
On peu faire LIMIT 2,1
Ca affichera 1 resultat a partir du 2eme ligne :)

par Elie » 12 mars 2005, 02:40

$sql = "SELECT * FROM joueurs ORDER BY num_C DESC LIMIT ".$i.",1"; 
$req = mysql_query($sql);
while($ligne = mysql_fetch_array($req)) { //ici c'est la ligne 24 ! 
   $id = $ligne["id"]; 
   $email = $ligne["email"]; 
}
Et si ca marche toujours pas tu fais echo $sql; et tu regarde la gueule de ta requete :) Et tu la test dans PHPMyADMIN !

par RLBDC » 12 mars 2005, 02:38

Je ne suis pas sûr de ce que je vais dire , mais à mon avis ( j'ai pas vérifié ) si ta variable $i est > 1 ( imaginons $i == 2 ) , ça ferais "LIMIT 2,1" ... et p-e que ton erreur vient de là , p-e que mysql ne gère pas LIMIT 2,1 , mais seulement LIMIT 1,2

Je répète , ce n'est qu'une hypothèse , je n'ai rien vérifié

Sinon , c'est soit qu'il y a une faute sur le nom de ta table "joueurs" , soit sur le nom de ton champ "num_C"

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

par dark_vidor » 12 mars 2005, 00:57

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/derniere/domains/derniere-bataille.com/public_html/script/index.php on line 24
le code :
$req = mysql_query("select * from joueurs order by num_C desc limit ".$i.",1");

for($i=0; $i<=$total; $i++)
{
   $ligne = mysql_fetch_array($req); //ici c'est la ligne 24 !
   $id = $ligne["id"];
   $email = $ligne["email"];
....
}
c'est trop bizard parce que j'ai tester la requete et sous mysql pour les valeurs de que prend $i ben c bon ça fonctionne :roll: j'ai bien une ligne qui s'affiche donc logiquement cette ligne est convertit en tableau par le mysql_fetch_array mé apparement ça veut pas, je comprend pas :cry: