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 :

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))
	{ ...
Ca marche mais il me semble que c'est pas très propre. si quelqu'un a une solution plus rapide...