ouitu as déjà testé celui-là sinon ?
<?php
// les AS servent à donner des noms plus facilement utilisables avec mysql_fetch_array
$sql = 'SELECT C.id_concours AS id_concours, C.nom AS nom, C.mois AS mois,
C. dmois AS dmois, B.bande AS bande, M.mode AS mode, C.report AS report, C.lien AS lien, C.info AS info
FROM concours C
INNER JOIN concours_bande CB
ON C.id_concours = CB.id_concours
INNER JOIN bandes B
ON CB.id_bande = B.id_bande
INNER JOIN concours_mode CM
ON C.id_concours = CM.id_concours
INNER JOIN modes M
ON CM.id_mode = M.id_mode
ORDER BY C.id_concours';
// exécution de la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// tableaux qui va stocker les informations d'un concours
$concours_courant = Array();
// tant qu'il y a des lignes de résultat, on les met dan sle tableau $data
while ($data = mysql_fetch_array($req)) {
// si l'identifiant du concours de la ligne courant est différent de celui stocké : on a changé de concours
if ($concours_courant['id_concours'] <> $data['id_concours']) {
// si $concours_courant est vide, c'est que c'est le premier passage dans la boucle donc on n'affiche rien
if (count($concours_courant) > 0) {
// on affiche toutes les infos du concours précédent
echo ' <i>Nom : '.$concours_courant['nom'].'</i><br>';
echo ' <i>Mois : '.$concours_courant['mois'].'</i><br>';
echo ' <i>Détails : '.$concours_courant['dmois'].'</i><br>';
echo ' <i>Bande : '.$concours_courant['bandes'].'</i><br>';
echo ' <i>Mode : '.$concours_courant['modes'].' mètres</i><br>';
echo ' <i>Report : '.$concours_courant['report'].'</i><br>';
echo ' <i>lien : <a href="'.$concours_courant['lien'].'">'.$concours_courant['lien'].'</a></i><br>';
echo ' <i>info : '.$concours_courant['info'].'</i><br>';
// on supprime ces infos pour stocker les nouvelles
$concours_courant = Array();
}
// on stocke l'identifiant du concours de la ligne de résultat comme l'identifiant courant
$concours_courant['id_concours'] = $data['id_concours'];
// on stocke les autres infos du nouveau concours
$concours_courant['nom'] = $data['nom'];
$concours_courant['mois'] = $data['mois'];
$concours_courant['dmois'] = $data['dmois'];
$concours_courant['report'] = $data['report'];
$concours_courant['lien'] = $data['lien'];
$concours_courant['info'] = $data['info'];
}
// ici on va concaténer chaque mode et chaque bande, pour les stocker ensemble, séparés par une virgule
// pour pouvoir les afficher d'un coup à la fin
$concours_courant['modes'] .= ', '.$data['mode'];
$concours_courant['bandes'] .= ', '.$data['bande'];
}
?>
$concours_courant['modes'] .= ', '.$data['mode'];
$concours_courant['bandes'] .= ', '.$data['bande'];
Resultat :
Il y a soit un soucis avec la requête (j'avoue ne pas l'avoir testé vu que je n'ai pas les données), soit un soucis avec les données elle-même.Bande : , 80m, 80m, 40m, 40m, 20m, 20m, 15m, 15m, 10m, 10m