Bonjour,
Voilà mon problème :
J'ai une table "concerts" avec les attributs suivant :
année, date de début, date de fin, salle, lieu, etc.
et je voudrais afficher la liste par année croissante du style:
=> 2006
- concert 1
- concert 2
=>2007
- concert 1
- concert 2
J'ai donc fait un order by sur l'année mais bien évidemment, il me retourne :
=> 2006
- concert 1
=> 2006
- concert 2
=> 2007
- concert 3
etc.
Pour régler ça, dans la boucle qui traite les résulats de la première requête (SELECT * FROM concerts ORDER BY annee), j'ai inséré une 2ème requete qui teste l'année avant d'afficher la liste des concerts.
en clair, ça donne ceci :
Ca marche mais il me semble que c'est pas très propre. si quelqu'un a une solution plus rapide...
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 $listeconcerts = mysql_query("SELECT * FROM concerts WHERE id='$id' ORDER BY annee ASC"); echo "<table width='390' border='0' cellpadding='0' cellspacing='0'> <tr> "; while ($res = mysql_fetch_array($listeconcerts)) { $annee = $res["annee"]; echo" <td colspan='3'><span class='soustitre'>$annee</span><br /><br /></td> </tr>"; $liste2 = mysql_query("SELECT * FROM concerts WHERE id='$id' AND annee='$annee' ORDER BY date_deb ASC"); while ($result = mysql_fetch_array($liste2)) { ...
Partager