Signaler

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

Posez votre question flo39400 470Messages postés mardi 8 avril 2008Date d'inscription 27 mai 2017 Dernière intervention - Dernière réponse le 21 mars 2017 à 16:24 par flo39400
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 
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
C'est une juste le menu.php ça qui est déjà inclus sur toutes les pages....
Deediezi.09 157Messages 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
Répondre
flo39400 470Messages postés mardi 8 avril 2008Date d'inscription 27 mai 2017 Dernière intervention - 15 mars 2017 à 23:28
Je veux savoir comment faire...
De cela sois intuitif et performant....
Répondre
Deediezi.09 157Messages 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.
Répondre
flo39400 470Messages postés mardi 8 avril 2008Date d'inscription 27 mai 2017 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.
Répondre
Donnez votre avis
Utile
+0
plus moins
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 470Messages postés mardi 8 avril 2008Date d'inscription 27 mai 2017 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.
Répondre
Donnez votre avis
Utile
+0
plus moins
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 470Messages postés mardi 8 avril 2008Date d'inscription 27 mai 2017 Dernière intervention - 21 mars 2017 à 16:24
Bon merci de votre aide, j'ai réussi seule....
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !