Stocker un menu dans ma base de données

Résolu/Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 14 mars 2017 à 00:43
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 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.

4 réponses

Deediezi.09 Messages postés 157 Date d'inscription mardi 31 janvier 2017 Statut Membre Dernière intervention 6 mai 2017 61
14 mars 2017 à 01:11
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.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
14 mars 2017 à 03:29
C'est une juste le menu.php ça qui est déjà inclus sur toutes les pages....

--
0
Deediezi.09 Messages postés 157 Date d'inscription mardi 31 janvier 2017 Statut Membre Dernière intervention 6 mai 2017 61
15 mars 2017 à 01:47
Hors mis chercher, récuperer et modifier l'info avec une BDD je vois pas
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
15 mars 2017 à 23:28
Je veux savoir comment faire...
De cela sois intuitif et performant....
0
Deediezi.09 Messages postés 157 Date d'inscription mardi 31 janvier 2017 Statut Membre Dernière intervention 6 mai 2017 61
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 :
https://www.php.net/manual/fr/pdo.connections.php

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

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

Tu devrais t'en sortir.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
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.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 20/03/2017 à 15:16
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.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
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.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
20 mars 2017 à 19:43
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
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
21 mars 2017 à 16:24
Bon merci de votre aide, j'ai réussi seule....
0