PDA

View Full Version : [PHP] Créer une liste déroulante depuis une table SQL


bastien
17 novembre 2004, 23h01
Bonsoir à tous !

Je souhaiterais donc créer une liste déroulante depuis une table mysql...

Je me suis donc inspiré d'un script sur un site, mais voici mon problème :

mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\wamp\www\labas\admin\playlist.php on line 17

Et voici le code :
require("../confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
echo '<select size=1 name=\"chans\">'."\n";
echo '<option value=\"-1\">Choisir un résultat<option>'."\n";
$sql = "SELECT * FROM 'chansons' ORDER BY `titre` ASC";
$ReqLog = mysql_db_query("$sql_bdd", $sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value=\"'.$resultat[0].'\">'.$resultat[1];
echo '</option>'."\n";
}

echo '</select>'."\n";
mysql_close($mysql_link);

La ligne 17 c'est la ou il y a le while...

Et voici le contenu du confmysl.php :

$sql_serveur="localhost";
$sql_user="xxx";
$sql_password="xxxx";
$sql_bdd="xxx";

Voilà !
Donc si vous pouvez me dépanner, ou me conseiller un autre script !

Bonne soirée,
Merci

Magi-X
18 novembre 2004, 06h41
Bonsoir à tous !

Je souhaiterais donc créer une liste déroulante depuis une table mysql...

Je me suis donc inspiré d'un script sur un site, mais voici mon problème :

mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\wamp\www\labas\admin\playlist.php on line 17

Et voici le code :
require("../confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
echo '<select size=1 name=\"chans\">'."\n";
echo '<option value=\"-1\">Choisir un résultat<option>'."\n";
$sql = "SELECT * FROM 'chansons' ORDER BY `titre` ASC";
$ReqLog = mysql_db_query("$sql_bdd", $sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value=\"'.$resultat[0].'\">'.$resultat[1];
echo '</option>'."\n";
}

echo '</select>'."\n";
mysql_close($mysql_link);


Salut zyk,

Bon faut que test quelque chose ...

mets entre "$ReqLog = mysql_db_query("$sql_bdd", $sql);" et ton while le code suivant:



$nr_result = mysql_num_rows($ReqLog);
echo "Nombres de données : ".$nr_result;
exit(); // question de ne pas continuer dans le reste du code ...


Enfaite je te fais faire cela, car j'avais et j'ai des fois encore ces genres d'erreur quand il y a rien dans le RegLog. Ce qui peu etre du a une mauvaise requete etc .. et le num_rows va voir combien il y en a.

C'est asse dur de trouve l'erreur comme ca dans le code, il faut que tu debug pas par pas. Verifie dans la bdd aussi si tout est correct etc ...

Laisse nous savoir :)

veekee
18 novembre 2004, 10h35
je serais toi, je testerais avant si la requète s'est bien déroulée sans anicroche ;)
-> http://www.nexen.net/docs/php/annotee/function.mysqli-error.php?lien=mysql


Je ne suis pas certain que les guillemets soient indispensables et bien interprétés par MySQl ;)

$sql = "SELECT * FROM chansons ORDER BY titre";

Magi-X
18 novembre 2004, 10h38
je serais toi, je testerais avant si la requète s'est bien déroulée sans anicroche ;)
-> http://www.nexen.net/docs/php/annotee/function.mysqli-error.php?lien=mysql


Je ne suis pas certain que les guillemets soient indispensables et bien interprétés par MySQl ;)

$sql = "SELECT * FROM chansons ORDER BY titre";


Maintenant que tu en parle il y a une erreur selon moi dans la requete, mais c'est seulement les single quote dans 'chanson' qui sont faute, les "quote" de `titre` ça ça fontionne, deilleur en phpmyadmin c tj avec c quote -> `

bargio
18 novembre 2004, 11h01
>>> $sql = "SELECT * FROM 'chansons' ORDER BY `titre` ASC";

Je confirme que les ' autour de chansons posent problèmes, je me suis pris la tête pendant un bon moment à cause de ça... soit tu ne mets rien, soit tu mets des `.

Seb

bastien
18 novembre 2004, 11h02
Effectivement, j'ai enlevé les apostrophes, et le problème est réglé !!!
AAahhh la technologie :)

Merci à tous quand même !

bargio
18 novembre 2004, 12h28
Yahoo ;) J'ai répondu juste à une question sur du php, d'habitude c'est moi qui pose les questions aux autres :)))) Surtout une question de toi Zyk, j'aurais jamais cru, vu tes sites ;)

Seb

bastien
18 novembre 2004, 12h41
Arf !
J'ai po la science php infuse ! Loin de là ...

Il peut m'arriver de bloquer .. la preuve !

fonji
18 novembre 2004, 13h13
La prochaine fois que t'as une requête sql qui va pas, même si l'erreur est plus loin, exécute-la d'abord dans phpmyadmin, pour voir un détail sur l'erreur et si elle retourne les résultats désirés (parce que genre si t'as une erreur dans la clause where...)

Donc si tu retombes sur un truc du genre, fais un echo $sql . '<br />' . $mysql_error();
ou, mieux, tu peux mettre ça comme ça :
mysql_db_query("$sql_bdd", $sql) or die($sql . '<br />' . $mysql_error());