Page 1 sur 1
PHP SUR <SELECT>
Posté : 06 janv. 2009, 14:31
par Camille2005
Bonjour à toutes et tous
et d'avant merci pour l'erreur et
désolé si ca fait doublon.
Voici le code qui n'affiche pas les differents genres :
<table>
<tr>
<td width=150>
Genre :
</td>
<td align="center">
<select name="genre">
<?php
@ $db = mysqli_connect('localhost', '', '', 'catalogue');
if (mysqli_connect_errno())
{
echo 'Error : please try again later.';
exit;
}
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle";
$result = mysqli_query($db, $query);
for ($row = mysql_fetch_assoc($result))
{
echo '<option> '.$row['genrelibelle'].' </option>';
}
?>
</select>
</td>
</tr>
</table>
Posté : 06 janv. 2009, 16:21
par edison1986
Bonjour,
remplace ton "for" par un "while".
Posté : 06 janv. 2009, 20:36
par fab
Effectivement il faut que tu remplaces ton for pour un while mais aussi tu as un problème avec ton mysql_query()
L'argument premier doit être la requete non la ressource et inversement pour le deuxième argument.
Ce deuxième paramètre et optionnel soit dit en passant.
Posté : 12 janv. 2009, 13:57
par Camille2005
Bonjour et merci pour vos premières aides,
mais je n'est toujours la liste <SELECT>.
D'avance merci
Camille2005
<table>
<tr>
<td width=150>
Genre :
</td>
<td align="center">
<select name="genre">
<?php
@ $db = mysqli_connect('localhost', '', '', 'catalogue');
if (mysqli_connect_errno())
{
echo 'Error : please try again later.';
exit;
}
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle";
$result = mysqli_query($query, $db);
while ($row = mysql_fetch_assoc($result))
{
echo '<option> '.$row['genrelibelle'].' </option>';
}
?>
</select>
</td>
</tr>
</table>
Posté : 12 janv. 2009, 14:41
par rolusseum
Bonjour,
Vérifie si ta requête select sql comporte des éléments
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle,mysqli_num_rows($query )";
echo $query ;
éventuellement, remplace mysql_fetch_assoc($result)) par mysql_fetch_array($result))
Table genres par console mySQL
Posté : 12 janv. 2009, 15:22
par Camille2005
Merci de votre réponse,
mais j'ai essayé sur la console mysql et
la phrase sql et tout ce passe bien. Mais
pourquoi mettre la fonction mysqli_num_rows($query)
jusqu'après la requette sql. D'avance merci
<table>
<tr>
<td width=150>
Genre :
</td>
<td align="center">
<select name="genre">
<?php
@ $db = mysqli_connect('localhost', '', '', 'catalogue');
if (mysqli_connect_errno())
{
echo 'Error : please try again later.';
exit;
}
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle";
$result = mysqli_query($query, $db);
while ($row = mysql_fetch_array($result))
{
echo '<option> '.$row['genrelibelle'].' </option>';
}
?>
</select>
</td>
</tr>
</table>
Posté : 12 janv. 2009, 20:34
par rolusseum
Désolé de ne pas avoir précisé ma démarche.
Vérifie si ta requête select sql comporte des éléments
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle,mysqli_num_rows($query )";
echo $query ;
mysqli_num_rows($query ) retourne le nombre d'enregistrements de la requête select.
En faisant echo $query ; tu pouvais vérifier si des enregistrements étaient bien là.
Donc, l'ajout de mysqli_num_rows($query ), c'était juste pour tester.
Voilà!
De toute manière ton souci persiste.
Est-ce que si tu affiche $row['genrelibelle'] sans utiliser la balise html select?
Posté : 19 janv. 2009, 13:46
par Camille2005
Bonjour à toutes et à tous,
je ne trouve pas ou sont les erreurs de mon script PHP ci dessous,
pouvez vous m'aider ?
Car j'ai deux livres et ils ne m'ont pas aidés

- PHP et MySQL pour les nuls
- PHP 5 & MySQL 5 (campusPress)
<table>
<tr>
<td width=150>
Genre :
</td>
<td>
<?php
$connexion = mysqli_connect('localhost', '', '', 'catalogue')
or die ("Connexion au serveur impossible");
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle";
$result = mysqli_query($connexion, $query)
or die ("Exécution de la requête impossible");
while ($ligne = mysqli_fetch_assoc($result))
{
extract($ligne);
echo $genrelibelle;
}
?>
</td>
</tr>
</table>
Posté : 19 janv. 2009, 13:58
par jojolapine
Et du coup qu'est-ce qui ne fonctionne pas?
Parce que là on peut pas trop t'aider...
Tu as un message d'erreur?
Posté : 19 janv. 2009, 14:15
par Camille2005
bonjour jojolapine,
l'erreur est que la liste des libelles des genres ne s'affiche pas
je t'ecris car un autre personne peut voir un problème que je ne voix pas.
D'avance merci
Ps : comment afficher dans le forum une image.
Posté : 19 janv. 2009, 14:30
par jojolapine
Oups pardon, je suis pas très réveillé et je n'avais pas vu que le sujet commençait plus haut...
Donc essaye ce code, et dis nous ce que ça donne:
<?php
$connexion = mysqli_connect('localhost', '', '', 'catalogue')
or die ("Connexion au serveur impossible");
$query = "SELECT DISTINCT genreid, genrelibelle FROM genres ORDER BY genrelibelle";
$result = mysqli_query($connexion, $query)
or die ("Exécution de la requête impossible<br />Requête:".$query);
while ($ligne = mysqli_fetch_assoc($result))
{
echo '<pre>';
print_r($ligne);
echo '</pre>';
}
?>
ps: concernant l'ajout d'image sur le forum, il faut au préalable uploader l'image sur des sites tels que
http://imageshack.us/ ,puis rajouter le liens içi

Posté : 19 janv. 2009, 19:24
par Camille2005
Pour completer voici la table "genres" à partir de la console MySQL :

Posté : 20 janv. 2009, 02:41
par rolusseum
Ta requête fonctionne directement sur la console mysql.
As-tu un message d'erreur lié à la connexion à la bd avec ton script php?
Comme tu développe en local, essaye éventuellement de mettre root pour $MySQL_User.
[php]
$connexion = mysqli_connect('localhost', 'root', '', 'catalogue')
or die ("Connexion au serveur impossible");
[/php]
Sinon essaye une requête très simple
$query = "SELECT * FROM genres";
$result = mysqli_query($connexion, $query) ;
while ($ligne = mysqli_fetch_assoc($result))
{
echo '<pre>';
echo $ligne['genrelibelle'];
echo '</pre>';
}
Posté : 20 janv. 2009, 02:51
par rolusseum
En utilisant d'autres fonctions
$query = "SELECT * FROM genres";
$result = execute_requeteSQL($query);
//Tant qu'il y a un enregistrement, afficher une nouvelle ligne
while($val = mysql_fetch_array ($result )){
echo '<pre>';
echo $val ['genrelibelle'];
echo '</pre>';
}