JeuWeb - Crée ton jeu par navigateur
[resolu] erreur pas moyen de trouvé la reponse - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [resolu] erreur pas moyen de trouvé la reponse (/showthread.php?tid=922)

Pages : 1 2


[resolu] erreur pas moyen de trouvé la reponse - matrix59 - 12-03-2007

bonjour a tous donc voila je me ba avec une erreur que je n'arrive pas a resoudre voicie l'erreur

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/matrix59/public_html/forum.php on line 72

et voicie ce que j'ai a ma ligne 72

Code PHP :
<?php 
while (($data1 = mysql_fetch_array($query1)) !== false)

voicie la requete au complet

Code PHP :
<?php 
$query1
= mysql_query("SELECT * FROM `sujets` WHERE idcat='".$_GET['cat']."' && idforum='".$_GET['f']."' ORDER BY date2 DESC LIMIT ".$sujet1.",".$nb_sujets_ppage);
while ((
$data1 = mysql_fetch_array($query1)) !== false)
{ if(
$gris > 2) { $gris = 1; }
//------
$id = stripslashes($data1['id']);
$idcat = stripslashes($data1['idcat']);
$idforum = stripslashes($data1['idforum']);
$status = stripslashes($data1['status']);
$titre = stripslashes($data1['titre']);
$description = stripslashes(emoticon($data1['description']));
$pseudo = stripslashes($data1['pseudo']);
$date = stripslashes($data1['date']);

si on pouvai m'aidé merci d'avance a tous


RE: erreur  pas moyen de trouvé la reponse :'( - Raoull - 12-03-2007

Si $_GET['cat'] et $_GET['f'] sont des nombres, tu peux virer les '

Et je te conseille de pas mettre directement les variables GET ou POST dans ta requetes, mais de les récup dans des variables et de les vérifier.
Si c'est des nombres, faite au moins un
Code PHP :
<?php 
$cat
= intval($_GET['cat']);
et utilise $cat au lieu de la variable $_GET dans ta requete.

Sinon pour ton erreur, c'est ta requète qui ne retourne aucun resultat valide.
Fais
Code PHP :
<?php 
$query1
= mysql_query("SELECT * FROM `sujets` WHERE idcat='".$_GET['cat']."' && idforum='".$_GET['f']."' ORDER BY date2 DESC LIMIT ".$sujet1.",".$nb_sujets_ppage) or die(mysql_error());
pour voir l'erreur mysql.

Et pour optimiser un poil, fais un mysql_fetch_assoc au lieu d'un mysql_fetch_array.


RE: erreur  pas moyen de trouvé la reponse :'( - denisc - 12-03-2007

... Et le !==false est inutile
Code PHP :
<?php 
while ($data1 = mysql_fetch_array($query1))



RE: erreur  pas moyen de trouvé la reponse :'( - Plume - 12-03-2007

Pourquoi tu concatènes ?!!

Code PHP :
<?php 
"SELECT * FROM `sujets` WHERE idcat='".$_GET['cat']."' AND idforum='".$_GET['f']."' ORDER BY date2 DESC LIMIT ".$sujet1.",".$nb_sujets_ppage
Je suis pas sûr que `&&` soit interprété en SQL ^^

Pour le reste, on va attendre que tu ais fait appel à mysql_error() & on en reparlera ^^


RE: erreur pas moyen de trouvé la reponse :'( - matrix59 - 12-03-2007

Raoull a écrit :Si $_GET['cat'] et $_GET['f'] sont des nombres, tu peux virer les '

Et je te conseille de pas mettre directement les variables GET ou POST dans ta requetes, mais de les récup dans des variables et de les vérifier.
Si c'est des nombres, faite au moins un
Code PHP :
<?php 
$cat
= intval($_GET['cat']);
et utilise $cat au lieu de la variable $_GET dans ta requete.

Sinon pour ton erreur, c'est ta requète qui ne retourne aucun resultat valide.
Fais
Code PHP :
<?php 
$query1
= mysql_query("SELECT * FROM `sujets` WHERE idcat='".$_GET['cat']."' && idforum='".$_GET['f']."' ORDER BY date2 DESC LIMIT ".$sujet1.",".$nb_sujets_ppage) or die(mysql_error());
pour voir l'erreur mysql.

Et pour optimiser un poil, fais un mysql_fetch_assoc au lieu d'un mysql_fetch_array.

voila j'ai mi le mysql_error et se me donne sa comme erreur

Erreur de syntaxe près de '-30,30' à la ligne 1



RE: erreur  pas moyen de trouvé la reponse :'( - Roworll - 12-03-2007

Visiblement c'est le LIMIT qui coince
LIMIT -30,30 n'est pas accepté par MySQL.
LIMIT 0,30 serait plus approprié

Essaye de verifier le contenu de ta variable $sujet1


RE: erreur pas moyen de trouvé la reponse :'( - matrix59 - 12-03-2007

Roworll a écrit :Visiblement c'est le LIMIT qui coince
LIMIT -30,30 n'est pas accepté par MySQL.
LIMIT 0,30 serait plus approprié

Essaye de verifier le contenu de ta variable $sujet1

je n'est pas de limit -30,30 ce qui me sample bizarre je vous refait voir la ligne ou il a le seul LIMIT sur la page

Code PHP :
<?php 
$query1
= mysql_query("SELECT * FROM `sujets` WHERE idcat='".$_GET['cat']."' && idforum='".$_GET['f']."' ORDER BY date2 DESC LIMIT ".$sujet1.",".$nb_sujets_ppage) or die(mysql_error());

donc la je c'est plus quoi faire


RE: erreur  pas moyen de trouvé la reponse :'( - Roworll - 12-03-2007

Dans la fin de ta requête tu as
Code PHP :
<?php 
"' ORDER BY date2 DESC LIMIT ".$sujet1.",".$nb_sujets_ppage

Si $sujet1 contient -30 et $nb_sujet_ppage contient 30, cela va être interprété par MySQL comme
Code PHP :
<?php 
ORDER BY date2 DESC LIMIT
-30,30
MySQL va alors te renvoyer l'erreur "Erreur de syntaxe près de '-30,30' à la ligne 1"

Ta variable $sujet1 doit certainement contenir la valeur -30 ce qui fait planter ta requête...


RE: erreur  pas moyen de trouvé la reponse :'( - matrix59 - 12-03-2007

ok mais je ne voie toujour pas ce que je doit faire pour corriger cette erreur desolé je debute dans php et connait pas encore tout :'( si on pouvai me dire ce que je doit maitre pour plus avoir cette erreur merci d'avance


RE: erreur  pas moyen de trouvé la reponse :'( - Roworll - 12-03-2007

LIMIT permet de renvoyer un morceau du resultat d'une requête.

Le premier chiffre indique à partir de quelle ligne on va prendre les résultats et le 2e combien de ligne on va aller rechercher

LIMIT 0,20 : renvoi les 20 premiers enregistrements
LIMIT 10,30 : renvoi les enregistrements 11 a 50
LIMIT 50,50 : renvoi les enregistrements 51 a 100

La première valeur ne peut pas être négative. Voila pourquoi le -30 n'est pas valable.
Il faudrait que $sujet1 contienne la valeur 0 ou plus pour enlever ton erreur.

Pour bien commencer et comprendre tout ça un peu mieux, je te recommande http://www.siteduzero.com
Si tu débutes, c'est un site tout indiqué.