Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/12/2011, 15h56   #1
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Par défaut Afficher le contenu d'une page HTML via du PHP

Bonjour,

Je suis entrain de réaliser un site web pour mon plaisir donc en local.
Je le créer en PHP(via la librairie TPLN) et comme SGBD : mysql.

Je souhaiterai donc que le menu de mon site s'affiche via une table 'liste_menus' de ma base de données.
Ci-dessous le contenu de la table 'liste_menus' :
Citation:
--
-- Structure de la table `liste_menus`
--
CREATE TABLE IF NOT EXISTS `liste_menus` (
`LM_id` smallint(6) NOT NULL AUTO_INCREMENT,
`LM_affichage` smallint(6) NOT NULL COMMENT 'AFFICHAGE DU MENU SELON LETAT DU MEMBRE : 1=Membre non connecté; 2=Membre connecté; 3=Membre connecté ou non connecté',
`LM_ordre_menu` smallint(6) NOT NULL,
`LM_ordre_sous_menu` smallint(6) NOT NULL,
`LM_libelle` varchar(500) NOT NULL,
`LM_lien` varchar(500) NOT NULL,
PRIMARY KEY (`LM_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

--
-- Contenu de la table `liste_menus`
--
INSERT INTO `liste_menus` (`LM_id`, `LM_affichage`, `LM_ordre_menu`, `LM_ordre_sous_menu`, `LM_libelle`, `LM_lien`) VALUES
(1, 3, 1, 0, 'ACCUEIL', 'Index.php'),
(2, 2, 2, 0, 'DECONNEXION', 'Index.php?action=deconnexion'),
(4, 3, 3, 0, 'GESTION COMPTE', ''),
(5, 2, 3, 1, 'Informations Personnelles', 'Index.php?action=informations_personnelles'),
(6, 2, 3, 2, 'Paramètrage des menus', 'Index.php?action=parametrage_menus'),
(7, 2, 4, 0, 'GESTION AGENDA', ''),
(8, 2, 4, 1, 'Paramètrage', ''),
(9, 2, 4, 2, 'Partage', ''),
(3, 1, 2, 0, 'CONNEXION', ''),
(10, 1, 3, 1, 'Mot de passe perdu', 'Index.php?action=mot_passe_perdu'),
(11, 1, 2, 1, 'Connexion', 'Index.php?action=connexion');
Ensuite, ci-dessous mon code PHP me permettant d'afficher les menus et sous menus :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
<?php
	$Tpl->Open('Modules/menus/M_menus_base.html');
 
	// Requête permettant de récupérer les menus.
	$sql_menus = "SELECT * FROM liste_menus WHERE LM_affichage IN('1','3') AND LM_ordre_sous_menu='0' ORDER BY LM_ordre_menu";	
	$Tpl->DoQuery($sql_menus);
	While($menu=$Tpl->DbFetch()) {
		$nb = $Tpl->getQueryNb();
 
		// Création de l'affichage des menus.
		$liste = '<ul class="titre_menu">';
		if($menu['LM_lien']!="")
			$liste .= '<li class="menu2"><a href="'.$menu['LM_lien'].'" title="'.$menu['LM_libelle'].'">'.$menu['LM_libelle'].'</a></li>';
		else
			$liste .= '<li class="menu1">'.$menu['LM_libelle'].'</li>';
		$liste .= '</ul>';
 
		// Récupération de(s) sous menus correspondant au menu en cours d'affichage.
		$sql_ss_menus = "SELECT * FROM liste_menus WHERE LM_ordre_menu = '".$menu['LM_ordre_menu']."' AND LM_affichage IN('1','3') AND LM_ordre_sous_menu!='0' ORDER BY LM_ordre_sous_menu";	
		$Tpl->DoQuery($sql_ss_menus);
		// Si on à au moins un résultat.
		if($Tpl->DbNumRows()) {
			// On vérifie si on est au menu 3(=CONNEXION) et si c'est le cas on affiche le contenu du lien dans une div.
			// Sinon on affiche le(s) sous menus dans une balise ul.
			if($menu['LM_id']=='3') {
				$liste .= '<div>';
				include('Modules/connexion/M_connexion.html');
				$liste .= '</div>';
			} else {
				$liste .= '<ul class="contenu_menu">';
				While($sous_menu=$Tpl->DbFetch()) {
						$liste .= '<li><a href="'.$sous_menu['LM_lien'].'" title="'.$sous_menu['LM_libelle'].'">'.$sous_menu['LM_libelle'].'</a></li>';
				}
				$liste .= '</ul>';
			}
		}
 
		$Tpl->ChangeQuery($nb);
		$Tpl->Parse('liste_menus.liste', $liste);
		$Tpl->Loop('liste_menus');
	}
 
	$Tpl->Write();
?>
Pour information, voici le code de la page 'Modules/connexion/M_connexion.htm' :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<form action="" method="post" name="Form_connexion">
		<ul class="contenu_menu">
			<li>Mail</li>
			<li><input type="text" name="email"></input></li>
			<li>Mot de passe</li> 
			<li><input type="password" name="mdp"></input></li>
			<li><input type="submit" name="valider" value="Valider"></input></li>
			<li><a href="Index.php?action=inscription" title="S'inscrire ?">S'inscrire ?</a></li>
		</ul>
	</form>
Mon problème c'est que le menu s'affiche mais pas au bon endroit. Ci-joint ce que j’obtiens comme visualisation.

Ma question est : Comment puis-je faire pour que la partie connexion (entouré en rouge) soit placé en dessous du menu 'CONNEXION' ?

Merci d'avance.
Images attachées
Type de fichier : jpg menu_quel_est_le_prog.jpg (24,7 Ko, 6 affichages)
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2012, 13h34   #2
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Bonjour,

J'ai enfin trouvé comment régler mon problème, ci-dessous le code de la page(modifié) qui permet d'afficher les menus et sous menus :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
<?php
	$Tpl->Open('Modules/menus/M_menus_base.html');
 
	// Requête permettant de récupérer les menus.
	$sql_menus = "SELECT * FROM liste_menus WHERE LM_affichage IN('1','3') AND LM_ordre_sous_menu='0' ORDER BY LM_ordre_menu";	
	$Tpl->DoQuery($sql_menus);
	While($menu=$Tpl->DbFetch()) {
		$nb = $Tpl->getQueryNb();
 
		// Création de l'affichage des menus.
		$liste = '<ul class="titre_menu">';
		if($menu['LM_lien']!="")
			$liste .= '<li class="menu2"><a href="'.$menu['LM_lien'].'" title="'.$menu['LM_libelle'].'">'.$menu['LM_libelle'].'</a></li>';
		else
			$liste .= '<li class="menu1">'.$menu['LM_libelle'].'</li>';
		$liste .= '</ul>';
 
		// Récupération de(s) sous menus correspondant au menu en cours d'affichage.
		$sql_ss_menus = "SELECT * FROM liste_menus WHERE LM_ordre_menu = '".$menu['LM_ordre_menu']."' AND LM_affichage IN('1','3') AND LM_ordre_sous_menu!='0' ORDER BY LM_ordre_sous_menu";	
		$Tpl->DoQuery($sql_ss_menus);
		// Si on à au moins un résultat.
		if($Tpl->DbNumRows()) {
			// On vérifie si on est au menu 3(=CONNEXION) et si c'est le cas on affiche le contenu du lien dans une div.
			// Sinon on affiche le(s) sous menus dans une balise ul.
			if($menu['LM_id']=='3') {
				$liste .= '<div>';
				$liste .= file_get_contents('Modules/connexion/M_connexion.html');
				$liste .= '</div>';
			} else {
				$liste .= '<ul class="contenu_menu">';
				While($sous_menu=$Tpl->DbFetch()) {
						$liste .= '<li><a href="'.$sous_menu['LM_lien'].'" title="'.$sous_menu['LM_libelle'].'">'.$sous_menu['LM_libelle'].'</a></li>';
				}
				$liste .= '</ul>';
			}
		}
 
		$Tpl->ChangeQuery($nb);
		$Tpl->Parse('liste_menus.liste', $liste);
		$Tpl->Loop('liste_menus');
	}
 
	$Tpl->Write();
?>
Merci à ceux qui ont prit leur temps de regarder mon problème.

Cordialement.
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web