Erreur de requete ?

Eléphant du PHP | 231 Messages

10 mars 2005, 22:25

$req = mysql_query("select * from joueurs order by num_C desc limit '$i','$i+1'");
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
for($i=1; $i<=$total; $i++)
{
   $ligne = mysql_fetch_array($req);
   $id = $ligne["id"];
   $email = $ligne["email"];
....
}
apparement il aime pas les $i dans la requete ??

Mammouth du PHP | 1885 Messages

10 mars 2005, 22:27

LIMIT accepte un entier comme limite et non une chaine.
$req = mysql_query("select * from joueurs order by num_C desc limit $i, $i+1");
non?
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 231 Messages

10 mars 2005, 23:19

non tjrs pas
une autre solution ? :roll:
je galere trop et si la requete fonctionne pas je ne peux pas avancer le reste :oops: :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 mars 2005, 23:26

Que donne un echo() de la requête en sortie navigateur ?
[/u]
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 231 Messages

10 mars 2005, 23:38

j'ai mi echo("$req"); et ça donne rien :?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 mars 2005, 23:43

j'ai mi echo("$req"); et ça donne rien :?
C'est normal, il faudrait plutôt mettre ta requête dans une variable (je parle de la chaîne de caractères là...) et faire
echo $sql;
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 231 Messages

10 mars 2005, 23:48

$req = mysql_query("select * from joueurs order by num_C desc limit $i,$i+1");
	
   echo $req;
ça donne tjrs rien
:roll:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 mars 2005, 23:54

ça donne tjrs rien :roll:
$req = "select * from joueurs order by num_C desc limit $i,$i+1";
   echo $req;
Essaie comme ça !!!!!! :twisted:
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 231 Messages

10 mars 2005, 23:59

ça donne
select * from joueurs order by num_C desc limit 1,1+1

select * from joueurs order by num_C desc limit 2,2+1

select * from joueurs order by num_C desc limit 3,3+1

select * from joueurs order by num_C desc limit 4,4+1

select * from joueurs order by num_C desc limit 5,5+1

select * from joueurs order by num_C desc limit 6,6+1

select * from joueurs order by num_C desc limit 7,7+1

select * from joueurs order by num_C desc limit 8,8+1
...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

11 mars 2005, 00:19

Donc ta requête est louche, tu ne vois pas ?
Au lieu d'un chiffre, il te met... 2+1, c'est étrange...mais l'Ordinateur ne se trompe jamais, c'est donc toi qui a fait une erreur. :)
Essaie donc ça :
$req = mysql_query("select * from joueurs order by num_C desc limit ".$i.",".$i+1);

Eléphant du PHP | 231 Messages

11 mars 2005, 00:28

hum nan en fait je crois que j'ai compris
je souhaite selectionner qu'une seule ligne a chaque coup donc ma requete doit plutot etre
$req = mysql_query("select * from joueurs order by num_C desc limit ".$i.",1");
dans l'interface phpmyadmin cette requete fonctionne mais dans la realité j'ai tjrs la meme erreur :?
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

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

11 mars 2005, 00:41

Qu'est-ce que tu mysql_fetch_array() ?
Et quelle est la ligne 24 ?

Bravo à toi d'avoir bien modifié ta requête, en tous cas...
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

11 mars 2005, 01:20

Tu devrais changer le début de ton script en quelque chose comme:
$sql = 'SELECT *
        FROM joueurs
		ORDER BY num_C DESC
		LIMIT ' . $i;

if (!$result = mysql_query($sql))
{
	die("Erreur <b>'" . mysql_error() . "'<hr />" . nl2br($sql));
}
Quant à $i... je n'ai pas compris ce que c'était, je pense que tu as mal lu la doc sur LIMIT...

Eléphant du PHP | 231 Messages

11 mars 2005, 19:44

ligne 24 :
   $ligne = mysql_fetch_array($req);