Code : Tout sélectionner
SELECT C.nom, C.mois, C. dmois, B.bande, M.mode, C.report, C.lien, C.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
1° - je dois identifier (les reliés) ceci avec la variable $id_concoursORDER BY C.id_concours
$id_concours = C.id_concours;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$concours_courant = null;
while ($data=mysql_fetch_array($req)) {
if ($id_concours <> $concours_courant){
echo ' <i>Nom : '.$data['nom'].'</i><br>';
echo ' <i>Mois : '.$data['mois'].'</i><br>';
echo ' <i>Détails : '.$data['dmois'].'</i><br>';
echo ' <i>Report : '.$data['report'].'</i><br>';
echo ' <i>lien : '.$data['lien'].'</i><br>';
echo ' <i>info : '.$data['info'].'</i><br>';
$concours_courant = $id_concours;
}
echo ' <i>Mode : '.$data['mode'].'</i><br>';
}
j'essayerais demains matin ton dernier post avec toutes tes infos
$sql = 'SELECT C.id_concours, C.nom, C.mois, C. dmois, B.bande, M.mode, C.report, C.lien, C.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';
$id_concours = C.id_concours;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$concours_mode = null;
$mode = $data['mode'];
while ($data=mysql_fetch_array($req)) {
if ($id_concours <> $concours_mode){
echo ' <i>Nom : '.$data['nom'].'</i><br>';
echo ' <i>Mois : '.$data['mois'].'</i><br>';
echo ' <i>Détails : '.$data['dmois'].'</i><br>';
echo ' <i>Report : '.$data['report'].'</i><br>';
echo ' <i>lien : '.$data['lien'].'</i><br>';
echo ' <i>info : '.$data['info'].'</i><br>';
$concours_mode = $id_concours;
}
for ($i=0; $i < count ($mode); $i++)
{
$chainemode .= $separateur . $mode[$i];
$separateur = ",";
echo 'mode' = .$chainemode.'<br>';
}
}
j'ai une erreur à ce niveau : echo 'mode' = .$chainemode.'<br>';
j'essaye d'afficher les modes de cette façon :par contre je ne comprend pas cette manipulation autour des modes
j'essaye seulement de d'effectuer la tache ci-dessus.ou as-tu vu que tu récupèrais un tableau de modes ?
un mode par ligne tout à fait ...regarde le résultat que tu récupères dans phpMyAdmin, ...
<?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';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// variable qui va stocker l'identifiant du concours traité
$id_courant = null;
// tant qu'il y a des lignes de résultat
while ($data=mysql_fetch_array($req)) {
// si l'identifiant du concours de la ligne courant est différent de celui stocké :
// c'est un nouveau concours donc on affiche ss infos
if ($id_concours <> $data['id_concours']) {
echo ' <i>Nom : '.$data['nom'].'</i><br>';
echo ' <i>Mois : '.$data['mois'].'</i><br>';
echo ' <i>Détails : '.$data['dmois'].'</i><br>';
echo ' <i>Report : '.$data['report'].'</i><br>';
echo ' <i>lien : '.$data['lien'].'</i><br>';
echo ' <i>info : '.$data['info'].'</i><br>';
echo ' modes : '; // on affiche le titre "modes"
// on socke cet identifiant comme l'identifiant courant
$id_courant = $data['id_concours'];
}
// on affiche le mode pour chaque ligne, avec une virgule à la fin
echo $data['mode'].', ';
}
?>
il y aura des choses à modifier pour afficher les bandes aussi, mais tu as le principe appliqué