aide liste deroulante triée par criteres
bonjour,
voila j'ai une liste deroulante et je voudrais afficher:
nom_categorie1
nom_sous_categ
nom_sous_categ
nom_sous_categ
nom_sous_categ
nom_categorie2
nom_sous_categ
nom_sous_categ
nom_sous_categ
nom_sous_categ
mais mon code ne fonctionne pas j ai deux table une catégorie et une sous catégorie avec dans sous_categorie une reference a la table categorie (num_categorie).
Mais mon code affiche ceci:
nom_categorie1
nom_sous_categ
nom_categorie1
nom_sous_categ
nom_categorie2
nom_sous_categ
nom_categorie2
nom_sous_categ
nom_categorie2
nom_sous_categ
et non pas:
nom_categorie1
nom_sous_categ
nom_sous_categ
nom_sous_categ
nom_sous_categ
auriez vous une ide voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?php
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "idealeparut";
$connexion = mysql_connect($serveur, $admin, $mdp);
mysql_select_db($base, $connexion);
$req = 'SELECT c.nom_categorie,s.nom_sous_categorie
FROM categorie_annonce as c, sous_categorie_annonce as s
where s.num_categorie=c.id_categorie
ORDER BY c.nom_categorie,s.nom_sous_categorie';
$res = mysql_query($req) or exit('Erreur: '.mysql_error());
$num_categorie = null;
echo('<select name="article">');
while ($donnees = mysql_fetch_assoc($res)) {
// Si on change de catégorie, on l'affiche dans le <select>.
if ($donnees['nom_sous_categorie'] !== $num_categorie) {
$num_categorie = $donnees['nom_categorie'];
echo('<optgroup label="'.$num_categorie.'">');
}
//On ajoute "logiquement" notre <option>.
echo('<option value="'.$donnees['num_categorie'].'">'.$donnees['nom_sous_categorie'].'</option>');
}
echo('</select>');
?> |