Menu

Stocker un menu dans ma base de données [Résolu/Fermé]

flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 14 mars 2017 à 00:43 - Dernière réponse : flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention
- 21 mars 2017 à 16:24
Bonjour,

J'aimerai savoir comment stocker de façon simple et efficaces mon menu dans une base de données.
L'idée est de pouvoir facilement modifier les titre et liens sans devoir toucher a la page. Le tous dois être évolutif.
Moi j'avais penser a créer une table de 15 champs mais je me suis dit que il devait avoir plus simple.


Voici mon menu déroulant.


<ul id="menu-accordeon">
   <li><a href="/sitebeta/index.php" rel="nofollow noopener noreferrer" target="_blank">Accueil</a>
   <ul>
   </ul>
   </li>
    <li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Espace membres</a>
      <ul>
	  <?php if(isset($_SESSION['id']))
	  {  
	  ?>
         <li><a href="/sitebeta/profil.php?id=<?php echo $_SESSION['id']; ?>&profil=1">Votre profil</a></li>
		 <li><a href="/sitebeta/deco.php" rel="nofollow noopener noreferrer" target="_blank">Se deconnecter</a></li>
	  <?php }else { ?>
         <li><a href="index.php?connexion=1" rel="nofollow noopener noreferrer" target="_blank">Vous connectez</a></li>
		 <li><a href="index.php?inscription=1" rel="nofollow noopener noreferrer" target="_blank">Vous inscrire</a></li>
	  <?php } ?>
         
      </ul>
   </li>
   <?php
 if(isset($_SESSION['statut']))
 {
   if($_SESSION['statut'] == 3)
   {
   ?>
   <li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Administration</a>
      <ul>
         <li><a href="admin/admlistemembres.php" rel="nofollow noopener noreferrer" target="_blank">Liste des membres</a></li>
         <li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Messagerie historique</a></li>
         <li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Ajouter des articles</a></li>
        
      </ul>
   </li>
   <?php
   }
 }
   ?>
   
</ul>
</br>


Merci de votre aide.
Afficher la suite 

10 réponses

Deediezi.09 157 Messages postés mardi 31 janvier 2017Date d'inscription 6 mai 2017 Dernière intervention - 14 mars 2017 à 01:11
0
Utile
Humpf pourquoi tu fais pas un include sur toutes tes pages ? Comme ça si tu veux modifier un truc tu as juste une page menu.php à modifier par exemple.
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 14 mars 2017 à 03:29
0
Utile
4
C'est une juste le menu.php ça qui est déjà inclus sur toutes les pages....
Deediezi.09 157 Messages postés mardi 31 janvier 2017Date d'inscription 6 mai 2017 Dernière intervention - 15 mars 2017 à 01:47
Hors mis chercher, récuperer et modifier l'info avec une BDD je vois pas
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 15 mars 2017 à 23:28
Je veux savoir comment faire...
De cela sois intuitif et performant....
Deediezi.09 157 Messages postés mardi 31 janvier 2017Date d'inscription 6 mai 2017 Dernière intervention - 16 mars 2017 à 00:02
Quoi ? Tu ne sais pas interagir avec une base de données ?

1. Créer une instance PDO pour te connecter à ta BDD :
http://php.net/manual/fr/pdo.connections.php

Pour insérer des données :
https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/ecrire-des-donnees-2

Pour lire des données :
https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/lire-des-donnees-2

Tu devrais t'en sortir.
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 16 mars 2017 à 08:18
Merci mais ça je sais faire....
Avez vous lu ce que j'ai écris ?
Dans le code il y a un menu principal qui peu être composer de sous menu avec des liens.
Le problème sais comment faire entrer sa dans une base de donner et pouvoir par la suite ajouter un menu sois sans lien url ou avec avec et aussi ajouter un sous menu au menu associés.

Car a cause de toutes les balises sa bloque et il devrait avoir plus simple pour faire fonctionner cela.
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - Modifié par flo39400 le 20/03/2017 à 15:16
0
Utile
1
Bonjour donc j'avance mais la je pose le problème du filtrage des menu via la base de données par exemple l'utilisateur qui est connecter doit pu voir le menu vous inscrire et se connecter.


Voila mon menu:

<?php

$menu_principal = $bdd->query("SELECT * FROM menu_principal");
$menu_secondaire = $bdd->prepare("SELECT * FROM menu_secondaire WHERE id_principal = ?");
?>


<ul id="menu-accordeon">
<?php while($MP = $menu_principal->fetch()) { 
$id_menu_principal = $MP['id'];
$menu_secondaire->execute(array($id_menu_principal));
$nombre_menu = $menu_secondaire->rowCount();

?>
 <li><a href="<?= $MP['lien_menu_principal']; ?>"><?= $MP['titre_menu_principal']; ?></a>
  <?php if($nombre_menu != 0) {
  while($MS = $menu_secondaire->fetch()) {  ?>
  <ul>
   <li><a href="<?= $MS['lien_sous_menu']; ?>"><?= $MS['titre_sous_menu']; ?></a></li>
  </ul>
  <?php } } ?>
 </li>
<?php } ?>
</ul>
</br>


L'idée c'est de pouvoir faire un filtrage depuis la base de donner par exemple utilisateur non connecter on coche les menu et sous_menu qu'il peu voir.
Afin de facilité l'administration. Tous en restant évolutifs.

Merci de votre aide, des simple pistes peuvent m'aider.
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 20 mars 2017 à 15:36
c'est bon j'ai trouver une solution ajouté des colonnes par type d'utilisateur puis faire un if avec la condition et appliquer une requête sql spécifique.
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 20 mars 2017 à 19:43
0
Utile
1
Bon je suis tomber sur un problème le php ne fonctionne pas quand il sort de la base de données je sais pas quoi faire pour corriger le problème.

Voici le code:

<?php
if(isset($_SESSION['statut']) AND ($_SESSION['statut'] == 0) AND (isset($_SESSION['id'])))
{
$menu_principal = $bdd->query("SELECT * FROM menu_principal");
$menu_secondaire = $bdd->prepare("SELECT * FROM menu_secondaire WHERE connecter = 1 AND id_principal = ?");	
	
}else{
$menu_principal = $bdd->query("SELECT * FROM menu_principal");
$menu_secondaire = $bdd->prepare("SELECT * FROM menu_secondaire WHERE non_connecter = 1 AND id_principal = ?");
}
?>


<ul id="menu-accordeon">
<?php while($MP = $menu_principal->fetch()) { 
$id_menu_principal = $MP['id'];
$menu_secondaire->execute(array($id_menu_principal));
$nombre_menu = $menu_secondaire->rowCount();

?>
	<li><a href="<?= $MP['lien_menu_principal']; ?>"><?= $MP['titre_menu_principal']; ?></a>
		<?php if($nombre_menu != 0) {
		while ($MS = $menu_secondaire->fetch()) { 	?>
		<ul>
			<li><a href="<?= $MS['lien_sous_menu']; ?>"><?= $MS['titre_sous_menu']; ?></a></li>
		</ul>
		<?php } } ?>
	</li>
<?php } ?>
</ul>
</br>


Donc j'ai mon lien : /sitebeta/profil.php?id=<?php echo $_SESSION['id']; ?>&profil=1 ce qui est dans ma base de donnee.

Quand je clique dessus il me redonne exactement le même lien comment faire pour que le php sois interprété par le serveur ?

merci d'avance
flo39400 589 Messages postés mardi 8 avril 2008Date d'inscription 8 février 2018 Dernière intervention - 21 mars 2017 à 16:24
Bon merci de votre aide, j'ai réussi seule....