Page 1 sur 2

Mysql non valide

Posté : 31 août 2006, 11:20
par Yu_meyio
Bonjour voici mes scripts
$rq = "SELECT DISTINCT discipline FROM Club ORDER BY discipline ASC";
$result = mysql_query($rq)
or die ("pas bon");

echo "<form action='club2.php' method='post'>
<select name='discipline'> \n";
while ($ligne = mysql_fetch_array($result))
{extract ($ligne);
echo "<option value='$discipline'>$discipline \n";
}
echo"</select> \n";
echo "<input type='submit'"."value=\"Envoyer\"></form>\n";
Ceci est le formulaire
if (isset($_POST['discipline'])) 
{

$reponse = mysql_query('SELECT * FROM Club ORDER BY id ASC LIMIT '  . $discipline . ',')
or die (mysql_error());
while ($donnees = mysql_fetch_array($reponse))
{
    echo '<p>' . $donnees['ville'] . '</p><br />'; 
	echo  '<p>' . $donnees['nomp'] . '</p>' ;
	echo '<p>' . $donnees['texte'] . '</p>';
	
}
}
et le probleme vient de la on me dit
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
je ne trouve pas le probléme de syntax :oops: Merci de votre aide

Posté : 31 août 2006, 11:34
par Ryle
Affiche la requête que tu as dans ton formulaire. Tu peux la stocker dans une variable $rq comme tu l'as fait pour ta première requete, et ainsi l'afficher avant de l'exécuter...

Tu verras tout de suite ce qui cloche en fin de ligne ;)

Posté : 31 août 2006, 11:47
par Yu_meyio
J'ai deja un peu plus avancé mais maintenant il me dise
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
:cry:

Posté : 31 août 2006, 11:58
par zeus
Est-ce que tu as réellement affiché la requete générée ? Comme te l'a conseillé Ryle ?

Parce que tu as une erreur phénoménale vers la fin de ta requete :shock:

Posté : 31 août 2006, 12:09
par albat
Suggèrerais-tu d'insérer un
echo "La requête générée est : ",$reponse;
:wink:

Posté : 31 août 2006, 12:15
par pascaltje
le problème se trouve dans le LIMIT, vérifie la syntaxe dans la doc de mysql.

A+

Pascal

Posté : 31 août 2006, 12:34
par albat
Wouaaaah, si tu dis tout... :o

Posté : 31 août 2006, 14:08
par Yu_meyio
J'ai tout essayé j'y arrive pas j'ai meme mis avec la condition where à la place de LIMIT parce qu'en relisant les cours je me suis apercus qu'on utilisait LIMIT qu'avec des chiffres je me trompe ??? :?: :?: :?:

Posté : 31 août 2006, 14:50
par albat
je me suis apercus qu'on utilisait LIMIT qu'avec des chiffres je me trompe ??? :?: :?: :?:
Et si tu regardais la doc en ligne ? :roll:
http://dev.mysql.com/doc/refman/5.1/en/select.html ;)

Posté : 31 août 2006, 15:05
par Yu_meyio
C'est trés gentil mais plus j'essaye de comprendre et moin j'y arrive alors pourriez vous me montrer ou j'ai faux!

et me l'espliquez j suis un debutant j'ai essayé de me debrouiller tout seul jusqu'ici mais la j'y arrive plus je comprend pas.

Posté : 31 août 2006, 15:11
par albat
Si tu lis la page que je t'ai indiquée,
tu trouveras l'explication dont tu as besoin pour utiliser LIMIT.

Posté : 31 août 2006, 15:21
par Yu_meyio
:( non j'ai pas trouvé je dois etre un idiot surement !!!

Posté : 31 août 2006, 15:27
par albat
The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement.
LIMIT takes one or two numeric arguments,
which must both be non-negative integer constants (except when using prepared statements).

With two arguments, the first argument specifies the offset of the first row to return,
and the second specifies the maximum number of rows to return.
The offset of the initial row is 0 (not 1):
//
SELECT * FROM tbl LIMIT 5,10;  //Retrieve rows 6-15

Posté : 31 août 2006, 15:31
par Yu_meyio
ok merci j'ai compris donc la condition LIMIT n'est pas la bonne il me faut une autre condition en faite j'ai un formulaire comme vous avez vu et a partir de ce formulaire on choisit un discipline et ensuite par rapport a cette discipline je voudrais une requete qui puisse dire je veux que tu cherche dans la bdd club tous les club de cette discipline.

Posté : 31 août 2006, 16:12
par Ryle
Le LIMIT a en effet pour seul et uniquement but de "limiter" le nombre de résultat retourner. Si jamais il y a quelques millions de club trouvés par ta requête, ça permet de les afficher par pages de 5, 10, 37, ... plutôt que d'en faire une seule avec le million de résultat :)

Pour mettre des conditions ou des filtres dans ta requête, c'est le WHERE qu'il faut utiliser :)