IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Afficher le contenu d'une page HTML via du PHP [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    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' :
    --
    -- 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Images attachées  

  2. #2
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire le contenu d'une page html via PHP
    Par laure07 dans le forum Langage
    Réponses: 8
    Dernier message: 25/11/2010, 11h35
  2. Réponses: 2
    Dernier message: 20/08/2009, 11h12
  3. Afficher le contenu d'une page html
    Par megamax dans le forum Intégration
    Réponses: 0
    Dernier message: 26/07/2009, 17h22
  4. Lire le contenu d'une page html via PHP
    Par overtrack dans le forum Langage
    Réponses: 1
    Dernier message: 26/05/2009, 12h09
  5. Afficher une page HTML via un javascript?
    Par sloyvy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/07/2008, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo