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 : Sélectionner tout - Visualiser dans une fenêtre à part
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>');
?>