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 :
- <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 :
Code :
- <?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();
- ?>
|
Pour mieux comprendre, voici la page où je fais les tests : http://www.la-grange-sardieres.fr/ [...] on2css.php
Merci beaucoup pour votre aide.
Message édité par quaresma le 26-10-2010 à 13:57:48