Pas d'idée pour la manière d'éxécuter un script

Nanocom
Invité n'ayant pas de compte PHPfrance

06 sept. 2007, 21:37

Salut, je galère beaucoup pour créer un script qui affiche en une requête les cours de mon site par niveau (Troisième, Seconde, etc) en une requête.

Voici la requête :

Code : Tout sélectionner

SELECT c.id AS id_cours, c.nom, c.description, c.id_niv, c.id_mat, n.id AS id_niveau, n.nom_niv FROM cours c LEFT JOIN niveau n ON c.id_niv = n.id WHERE c.id_mat='.$id_mat.' ORDER BY c.nom
En fait on affiche les cours en fonction de la matière choisie d'où le $id_mat en plein milieu.

Je voudrais afficher la page de la manière suivante :

Code : Tout sélectionner

<!-- BEGIN niveau --> <h2>Le titre du niveau (troisième, seconde etc)</h2> <!-- BEGIN cours --> Le titre du cours, sa description etc <!-- END cours --> <br /> <!-- END niveau -->

Il faudrait faire une double boucle mais je vois vraiment pas comment, je suis pas encore assez expérimenté pour ça...

Et pour plus de précisions, je veux en fait afficher le titre de chaque niveau contenant des cours et les cours qui font partie de ce niveau juste en dessous (sans réafficher plusieurs fois le titre du niveau)

Merci pour vos réponses et @ + !

Eléphant du PHP | 377 Messages

06 sept. 2007, 21:47

Piste à explorer : je verrais plutot la requete ordonnée d'abord par niveau PUIS par nom de cours :

Code : Tout sélectionner

SELECT c.id AS id_cours, c.nom, c.description, c.id_niv, c.id_mat, n.id AS id_niveau, n.nom_niv FROM cours c LEFT JOIN niveau n ON c.id_niv = n.id WHERE c.id_mat='.$id_mat.' ORDER BY n.nom_niv, c.nom
d'ailleurs si tu as un ordre dans niveaux, ce serait plutot par ca qu'il faudrait ordonner, mais bon...

Ensuite une boucle simple suffit :
$titreCourant="";
while($r=mysql_fetch_assoc($requete)) {
    if($titreCourant!=$r['nom_niv']) {
        echo "<h2>".$r['nom_niv']."</h2>";
        $titreCourant=$r['nom_niv'];
    }
    //ici l'affichage de chaque cours, je te laisse le soin de t'en occuper ;)
}
Petit scarabée deviendra grand

Nanocom
Invité n'ayant pas de compte PHPfrance

08 sept. 2007, 16:53

Je vais voir ce que je peux faire avec ça... Je vous recontacte après ! ;)

Nanocom
Invité n'ayant pas de compte PHPfrance

08 sept. 2007, 16:55

Ah ouiiii bien vu ! J'ai enfin compris ! Merci beaucoup !