Menu dynamique avec BDD

Résolu/Fermé
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - 13 juil. 2011 à 22:21
ekamy Messages postés 1 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 23 mai 2016 - 23 mai 2016 à 14:14
Bonjour,

Je voudrais pouvoir incorporer un menu dynamique lié à ma BDD.
J'ai trouvé mon bonheur sur le site "developpez.com
https://pbnaigeon.developpez.com/tutoriel/PHP/conception-site-dynamique/

Tous les liens fonctionnent mais je ne sais pas comment afficher mes pages.
Pouvez-vous m'aider un peu s'ils vous plait.
En vous remerciant beaucoup.

A voir également:

15 réponses

hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
14 juil. 2011 à 00:23
en apprenant les bases du html ca devrait aller tout seul
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 17:05
Bonjour

Merci pour tes encouragements mais je connais les bases du HTML mais pour ça je ne vois pas.
Peut-être en me donnant quelques explications ça pourrai m'aider.
Merci
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
14 juil. 2011 à 17:12
ok alors allons y petit a petit :)
tu arrives a récupérer les infos de ta base déja ou pas ?
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 17:18
bonjour et merci

oui j'ai récupéré mes infos de ma BDD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
14 juil. 2011 à 17:58
tu peu coller le minima du script que tu utilise on va voir ensemble comment l'adapter pour generer un menu html
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 18:16
Tout d'abord il y a ce script qui affiche soit la page courante soit la page d'accueil
	// on récupère l'id de la page courante passée par l'URL
	// Si non défini, on considère que la page est la page d'accueil
	if (isset($_GET['id_page'])) {
		$_ENV['id_page'] = intval($_GET['id_page']);
	} else {
		$_ENV['id_page'] = $id_page_accueil;
	}

et la fonction qui.......
// Affiche les menus.
// Paramètres : id de la page -> $idpage 
// (id de la page en cours pour le menu de gauche, id de la page racine (1) pour le menu du haut)
// Renvoie : le menu sous forme de liste -> $menu_retour
function affiche_menu($idpage) {
	// Sélectionne toutes les pages filles de la page en cours
	$strSQL = 'SELECT 'Id_page', 'Titre' FROM 'pages' WHERE 'Id_parent' = '.$idpage;
	$resultat = requete_SQL($strSQL);
	// Si la page n'a pas de page fille, alors on modifie la requète pour obtenir ses pages soeurs.
	if (mysql_num_rows($resultat) == 0) {
		$strSQL = 'SELECT 'Id_page', 'Titre' FROM 'pages' WHERE 'Id_parent' = '.$_ENV['id_parent'];
		$resultat = requete_SQL($strSQL);
	}
	$menu_retour = '<ul>';
	while ($tabl_result = mysql_fetch_array($resultat)) {
		$menu_retour .= '<li>';
		$menu_retour .= '<a href="index.php?id_page='.$tabl_result['Id_page'].'">';
		$menu_retour .= $tabl_result['Titre'];
		$menu_retour .= '</a>';
		$menu_retour .= '</li>';
	}
	$menu_retour .= '</ul>';
	return $menu_retour;
}
?>
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
14 juil. 2011 à 20:02
et donc qu'est ce qui ne marche pas ?
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 20:40
ben en fait je ne sais pas comment afficher mes pages dynamiquement.
Dans ma BDD j'ai 6 champs dont 1 champ "contenu" j'affiche bien toutes les pages via le menu mais elles sont vides.
mes pages se trouvent dans un dossier "page" à la racine du site.

voici ma table
CREATE TABLE IF NOT EXISTS 'pages' (
  'Id_page' int(11) NOT NULL AUTO_INCREMENT,
  'Titre' varchar(255) CHARACTER SET utf8 NOT NULL,
  'Mots_cles' varchar(255) CHARACTER SET utf8 NOT NULL,
  'Description' varchar(255) CHARACTER SET utf8 NOT NULL,
  'Contenu' text CHARACTER SET utf8 NOT NULL,
  'Id_parent' int(11) NOT NULL DEFAULT '1',
  PRIMARY KEY ('Id_page')
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;

--
-- Contenu de la table 'pages'
--

INSERT INTO 'pages' ('Id_page', 'Titre', 'Mots_cles', 'Description', 'Contenu', 'Id_parent') VALUES
(1, 'Accueil', 'Accueil', 'Accueil', 'Accueil', 0),
(2, 'L''association', 'L''association', 'L''association', 'L''association', 1),
(3, 'Membres', 'Membres', 'Membres', 'Membres', 1),
(4, 'Galeries', 'Galeries', 'Galeries', 'Galeries', 1),
(5, 'Infos pratiques', 'Infos pratiques', 'Infos pratiques', 'Infos pratiques', 1),
(6, 'Historique', 'Historique', 'Historique', 'Historique', 2),
(7, 'Statuts', 'Statuts', 'Statuts', 'Statuts', 2),
(8, 'Réglement', 'Réglement', 'Réglement', 'Réglement', 2),
(9, 'Musiciens', 'Musiciens', 'Musiciens', 'Musiciens', 3),
(10, 'Responsables', 'Responsables', 'Responsables', 'Responsables', 3),
(11, 'Récompenses', 'Récompenses', 'Récompenses', 'Récompenses', 3),
(12, 'Photos', 'Photos', 'Photos', 'Photos', 4),
(13, 'Vidéos', 'Vidéos', 'Vidéos', 'Vidéos', 4),
(14, 'La presse', 'La presse', 'La presse', 'La presse', 4),
(15, 'Notre répertoire', 'Notre répertoire', 'Notre répertoire', 'Notre répertoire', 4),
(16, 'Formations', 'Formations', 'Formations', 'Formations', 5),
(17, 'Prestations', 'Prestations', 'Prestations', 'Prestations', 5),
(18, 'Lieu', 'Lieu', 'Lieu', 'Lieu', 5);

Merci
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
14 juil. 2011 à 21:03
c pas évident si tu colle tout a chaques fois pour bien faire il faudrai que je le copie dans mon editeur de code mais non pask sinon on en finirai jamais...

colle le minima a l'avenir stp

essaie juste une simple requete et affiche un champ pour voir, mais sans tout le bazard
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 22:00
En fait je crois que je me suis mal expliqué.

Si par exemple c'était un menu classique sans BDD j'aurai juste besoin de cliquer sur le lien du menu pour afficher la page historique
<a href="index.php?body=historique">Historique</a>

avec se script bien sur
<?php
//si la valeur "body" de $_GET existe et est différent de NUL
//alors $corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) && $_GET['body'] != NULL)
    $corps = 'page/' . $_GET['body'] . '.php';
else
    $corps = 'page/accueil.php';
?>

je peux afficher le champ "contenu" de ma table mais juste avec le titre
je ne peux quand même pas mettre le code de toutes mes pages dans ma base de donnée.
C'est là que je ne comprend pas.
Merci
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
14 juil. 2011 à 22:50
je comprend tout jusque la :
"je peux afficher le champ "contenu" de ma table mais juste avec le titre "

le reste je comprend pas ce que tu veux.... :(

sinon ton systeme est pas mauvais par contre il est vraiment dans les choux niveau sécurité
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 23:13
je suis en train de voir quelques chose et je te redis...

Merci
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juil. 2011 à 23:51
c'est encore moi .

je pensais qu'en rajoutant dans ma table "contenu" page/historique.php
j'allais pouvoir ouvrir cette page, mais non c'est la galère.
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
15 juil. 2011 à 00:18
tu peux m'expliquer ça j'ai du mal à comprendre.
ça concerne mon champ "contenu"

stocker uniquement l'adresse physique sur le serveur de la page à inclure. A ce moment là, il faudra remplacer l'affichage du contenu en provenance de la base de données par un include du chemin extrait du contenu de la DB

Je te remercie
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
15 juil. 2011 à 08:07
en gros tu stoque le nom de la page qui contien le contenu que tu souhaites faire aparaitre apres le click...

et tu utilise include pour l'afficher

tu récupere ta variable $_POST et tu include la page qui correspond


par exemple

url => index.php?body=article

$page = $_GET['body'];

switch($page){
    case "article" :
        include 'article.php';
        break;
    case "accueil" :
        include 'accueil.php';
        break;
    defaut :
        include "login.php";
        break;
}


ou directement (en faisant quelques controles sinon c'est dangereux ^^)

include $_GET['body'];
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
15 juil. 2011 à 10:13
Bonjour

Ca y est bon sang de bonsoir..........................................

Super cool ça fonctionne comme je le souhaitais.
C'est génial.
Un grand merci pour tout.
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
15 juil. 2011 à 10:36
alors explik ce que tu as fait car je t'avoue je ne vois toujours pas exactement ce que tu voulais faire :)
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
16 juil. 2011 à 18:10
Bonjour,
En fait j'ai du rajouter tout simplement le chemin relatif dans mon champ contenu. "page/menu_membre/membre.php"

C'est ton dernier post qui ma donnée la puce à l'oreille.

A+
Merci
0
ekamy Messages postés 1 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 23 mai 2016
23 mai 2016 à 14:14
Ca remonte un peu, mais j'ai toujours pas compris, porrait tu mieux expliquer stp

Merci
0