Bonjour à toutes et tous,
J'ai deux tables menus et contenus :
CREATE TABLE menus (id_menu INT not null AUTO_INCREMENT, lib_menu VARCHAR (100) NOT NULL, id_parent INT, image_menu VARCHAR (100), url_page VARCHAR (100), ordre_menu INT, PRIMARY KEY (id_menu));
CREATE TABLE contenu (id_contenu INT not null AUTO_INCREMENT, categorie VARCHAR (100) NOT NULL, nom_lien VARCHAR (40), photo_contenu VARCHAR (40), lieu VARCHAR (40), titre VARCHAR (40), dateetnbrepage VARCHAR (20), editeur VARCHAR (40), texte TEXT, ordre_contenu INT, PRIMARY KEY (id_contenu));
Sur mon site, j'ai un menu à gauche qui correspond à la table menus, dont voici le code PHP/SQL :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <div id="menu"> <?php require("identification/connexion_sql.php"); // on attaque le php ici // dans un premier temps on recupere les menus de niveau 1 donc ceux qui ont l'id_parent egal a 0 $req1 = "SELECT id_menu, lib_menu FROM menus WHERE id_parent='0' ORDER BY ordre_menu" or die ("impossible d'effectuer la requête"); $rep1 = mysql_query($req1); while($row1 = mysql_fetch_array($rep1)) { // on affiche le menu de niveau 1 echo "<div class=\"menu\" id=\"menu".$row1['id_menu']."\" onclick=\"afficheMenu(this)\"><a href=\"#\">".$row1['lib_menu']."</a></div><br>\n"; // ensuite on fait une seconde requete pour chercher les sous menus de ce niveau, s'il y en a on les affiche, sinon on ne fait rien $req2="SELECT id_menu, lib_menu FROM menus WHERE id_parent='".$row1['id_menu']."' ORDER BY ordre_menu" or die ("impossible d'effectuer la requête"); $rep2=mysql_query($req2); $nb2=mysql_num_rows($rep2); if (isset($nb2) && $nb2>0) { echo "<div id=\"sousmenu".$row1['id_menu']."\" style=\"display:none\"><br>\n"; while ($row2=mysql_fetch_array($rep2)) { $num = $row2['id_menu']; $lib = htmlentities($row2['lib_menu']); print '<div class="sousmenu"><a href="contenu.php?num='.$num.'&lib='.$lib.'">'.$lib.'</a></div><br>'; } echo "</div>\n"; } } ?> </div>
Lorsque je clique sur un un lien du sous-menu, je vais vers une page nommée contenu.php? pour laquelle je transmets des variables ($num et $lib)
Cette page contenu.php devrait afficher les noms des liens correspondant au sous-menu cliqué, mais j'ai un soucis dans la requête de cette page.
Voici le code PHP/SQL qui ne fonctionne pas. Je n'ai pas d'erreur, tout simplement lorsque je clique sur un lien du sous-menu le contenu correspondant ne s'affiche pas :
Pour mieux comprendre, voici la page où je fais les tests : http://www.la-grange-sardieres.fr/si...tation2css.php
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
16 <?php $ca = htmlentities($_GET['lib']); $idm = $_GET['num']; require("identification/connexion_sql.php"); $requete = "Select id_contenu, nom_lien, categorie FROM contenu, menus WHERE contenu.categorie = (SELECT lib_menu FROM menus WHERE menus.lib_menu='$ca') ORDER BY contenu.ordre_contenu"; $reponse = mysql_query($requete) or die ("impossible d'effectuer la requête"); while($affiche = mysql_fetch_array($reponse)) { $liencontenu = htmlentities($affiche['nom_lien']); $id_contenu = $affiche['id_contenu']; print '<div id="lien" class="lien"><a href="fiche.php?id='.$id_contenu.'&nomlien='.$liencontenu.'" class="lien">'.$liencontenu.'</a></div>'; } mysql_close(); ?>
Merci beaucoup pour votre aide.
Partager