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 :

affichage d'un menu depuis une bbd. problème de div. mauvais placement


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 238
    Par défaut affichage d'un menu depuis une bbd. problème de div. mauvais placement
    Bonjour à tous et à toutes,
    Je viens vous demander de l'aide aujourd'hui pour un problème d'affichage d'un menu.
    J'espère que des courageux pourrons m'aider car je l’avoue lire tous ce qui va suivre et chiant mais j'ai bon espoir que quelqu'un m'aide.
    Voici mon problème :
    J'ai un menu en html qui fonctionne très bien et je voudrais maintenant le remplir avec les infos qui sont dans ma bdd.
    J'ai 4 tables. la table menu, la table rubrique, la table sous menu (les sous onglets vont s'afficher sous les rubriques) et la table image.
    table menu :
    Nom : menu.jpg
Affichages : 113
Taille : 40,3 Ko

    Table rubriques
    Nom : rubrique.jpg
Affichages : 104
Taille : 48,0 Ko

    table sous menu
    Nom : sous_menu.jpg
Affichages : 110
Taille : 126,6 Ko

    images
    Nom : image.jpg
Affichages : 108
Taille : 78,6 Ko

    Voici le menu en html qui fonctionne bien
    Code HTML : 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <header class="dark">
    		  <nav role="navigation">
    			<a href="javascript:void(0);" class="ic menu">
    			  <span class="line"></span>
    			  <span class="line"></span>
    			  <span class="line"></span>
    			</a>
    			<a href="javascript:void(0);" class="ic close"></a>
    			<ul class="main-nav">
    			  <li class="top-level-link">
    				<a><span>Accueil</span></a>      
    			  </li> 
     
    			  <li class="top-level-link">
    				<a class="mega-menu"><span>Optique</span></a>
    				<div class="sub-menu-block">
    				  <div class="row">
    					<div class="col-md-4 col-lg-4 col-sm-4">
    					  <h2 class="sub-menu-head">Femme</h2>
    					  <ul class="sub-menu-lists">
    						<li><a>Christian Lacroix</a></li>
    						<li><a>Ray-Ban</a></li>
    						<li><a>Persol</a></li>
    						<li><a>Vuarnet</a></li>
    					  </ul>           
    					</div>
    					<div class="col-md-4 col-lg-4 col-sm-4">
    					  <h2 class="sub-menu-head">Homme</h2>
    					  <ul class="sub-menu-lists">
    					  <li><a>Christian Lacroix</a></li>
    						<li><a>Ray-Ban</a></li>
    						<li><a>Persol</a></li>
    						<li><a>Vuarnet</a></li>
    					  </ul>
    					</div>
    				  </div>
     
    				  <div class="row banners-area">
    				  <h2 class="sub-menu-head">Nouveauté</h2>
    					<div class="col-md-6 col-lg-6 col-sm-6">
    					  <img src="https://opticdeluxe.fr/images/produits/gr/1612477419-lunettes-optique-ray-ban-rb-5371-2000-black.jpg" width="100%;">
    					</div>
    					<div class="col-md-6 col-lg-6 col-sm-6">
    					  <img src="https://opticdeluxe.fr/images/produits/gr/1600781724-lunettes-optiques-christian-lacroix-cl-1082-prescription-glasses-165---brown.jpg" width="100%;">
    					</div>
    				  </div>
     
    				</div>
    			  </li>
    			  <li class="top-level-link">
    				<a class="mega-menu"><span>Solaire</span></a>
    				<div class="sub-menu-block">
    				  <div class="row">
    					<div class="col-md-4 col-lg-4 col-sm-4">
    					  <h2 class="sub-menu-head">Femme</h2>
    					  <ul class="sub-menu-lists">
    						<li><a>Christian Lacroix</a></li>
    						<li><a>Ray-Ban</a></li>
    						<li><a>Persol</a></li>
    						<li><a>Vuarnet</a></li>
    					  </ul>           
    					</div>
    					<div class="col-md-4 col-lg-4 col-sm-4">
    					  <h2 class="sub-menu-head">Homme</h2>
    					  <ul class="sub-menu-lists">
    						<li><a>Christian Lacroix</a></li>
    						<li><a>Ray-Ban</a></li>
    						<li><a>Persol</a></li>
    						<li><a>Vuarnet</a></li>
    					  </ul>
    					</div>
    				  </div>
     
    				  <div class="row banners-area">
    				  <h2 class="sub-menu-head">Nouveauté</h2>
    					<div class="col-md-6 col-lg-6 col-sm-6">
    					  <img src="https://opticdeluxe.fr/images/produits/gr/1612482126-lunettes-solaires-persol-3164-2457-1.jpg" width="100%;">
    					</div>
    					<div class="col-md-6 col-lg-6 col-sm-6">
    					  <img src="https://opticdeluxe.fr/images/produits/gr/1607092135-lunettes-chloe-femme-solaire-ce-curtis-162s-742.jpg" width="100%;">
    					</div>
    				  </div>
     
    				</div>
    			  </li>
    			  <li class="top-level-link">
    				<a><span>Contact</span></a>      
    			  </li>
    			</ul> 
    		  </nav>
    		</header>

    et voici mon interpolation avec les tables

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    <?php
    $req_menu_hor = $bdd->prepare("SELECT id, nom_onglet, lien_onglet FROM menu WHERE auth_view <= :auth ORDER BY ordre_aff ASC");
    $req_menu_hor->bindValue('auth', $level, PDO::PARAM_INT);
    try {
    		$req_menu_hor->execute();
    	}
    catch (PDOException $e)
    	{
    	   echo 'Error : ' . $e->getMessage();
    	   die();
    	}
    echo'<div id="header">
    	<header class="dark">
    		<nav role="navigation">
    			<a href="javascript:void(0);" class="ic menu">
    				<span class="line"></span>
    				<span class="line"></span>
    				<span class="line"></span>
    			</a>
    			<a href="javascript:void(0);" class="ic close"></a>
    				<ul class="main-nav">';
    					while ($res_menu_hor = $req_menu_hor->fetch())
    						{
    							echo'<li class="top-level-link"><a';
    							$recherche_rub = $bdd->prepare("SELECT rubrique_id, nom_rubrique, num_id_menu FROM rubrique_menu 
    							WHERE num_id_menu = :id_menu AND auth_view_rubrique <= :auth_rub ORDER BY ordre_rubrique ASC");
    							$recherche_rub->bindValue('id_menu', $res_menu_hor['id'], PDO::PARAM_INT);
    							$recherche_rub->bindValue('auth_rub', $level, PDO::PARAM_INT);
    							try {
    									$recherche_rub->execute();
    									$total_rub = $recherche_rub->rowCount();
    								}
    							catch (PDOException $e)
    								{
    								   echo 'Error : ' . $e->getMessage();
    								   die();
    								}
    							if ($total_rub > 0)
    								{
    									echo ' class="mega-menu"';
    								}
    							echo'><span>'.$res_menu_hor['nom_onglet'].'</span></a>';
    							if ($total_rub > 0)
    								{
    									echo'<div class="sub-menu-block">';
    											while ($res_rub = $recherche_rub->fetch())
    												{
    													$rech_img = $bdd->prepare("SELECT lien_img, lien_dest FROM image_menu 
    													WHERE id_rub_cor = :num_rub AND auth_view_img <= :auth_sous_ong ORDER BY ordre_aff_img ASC");
    													$rech_img->bindValue('num_rub', $res_rub['rubrique_id'], PDO::PARAM_INT);
    													$rech_img->bindValue('auth_sous_ong', $level, PDO::PARAM_INT);
    													try {
    															$rech_img->execute();
    															$total_img = $rech_img->rowCount();
    														}
    													catch (PDOException $e)
    														{
    															echo 'Error : ' . $e->getMessage();
    															die();
    														}
    													if ($total_img > 0)
    														{
    															echo'<div class="row banners-area">';
    															echo'<h2 class="sub-menu-head">'.$res_rub['nom_rubrique'].'</h2>';
    																while ($res_img = $rech_img->fetch())
    																	{
    																		echo'<div class="col-md-6 col-lg-6 col-sm-6"><img src="'.$res_img['lien_img'].'" width="100%;"></div>';
    																	}
    																echo'</div>';
    														}
    													else
    														{
    															echo'<div class="row">';
    															echo'<div class="col-md-4 col-lg-4 col-sm-4">';
    															echo'<h2 class="sub-menu-head">'.$res_rub['nom_rubrique'].'</h2>';
    														}
    													$rech_img->closeCursor();
     
    													$rech_sous_ong = $bdd->prepare("SELECT nom_s_ong, lien_s_ong FROM sous_menu 
    													WHERE cor_id_rub = :num_id_rub AND auth_view_s <= :auth_s_ong ORDER BY ordre_s_ong ASC");
    													$rech_sous_ong->bindValue('num_id_rub', $res_rub['rubrique_id'], PDO::PARAM_INT);
    													$rech_sous_ong->bindValue('auth_s_ong', $level, PDO::PARAM_INT);
    													try {
    															$rech_sous_ong->execute();
    															$total_s_ong = $rech_sous_ong->rowCount();
    														}
    													catch (PDOException $e)
    														{
    														   echo 'Error : ' . $e->getMessage();
    														   die();
    														}
    													if ($total_s_ong > 0)
    														{
     
    																echo '<ul class="sub-menu-lists">';
    																	while ($res_sous_ong = $rech_sous_ong->fetch())
    																		{
    																			echo'<li><a>'.$res_sous_ong['nom_s_ong'].'</a></li>';
    																		}
    																echo '</ul>';
    														}
    													echo'</div>';
    													echo'</div>';
     
    													$rech_sous_ong->closeCursor();
    												}
     
    									echo'</div>';
    								}
    							$recherche_rub->closeCursor();
    							echo'</li>';
     
    						}
     
    echo'</ul> 
    		  </nav>
    		</header></div>';
    $req_menu_hor->closeCursor();
    ?>
    Le problème c'est que j'ai des </div> pas bien placés et les </li> en trop du coup l'affichage n'est pas top.
    Un grand merci à ceux qui prendrons la peine de m'aider.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonsoir

    Votre code ne retourne pas de div manquante ou quoi que ce soit comme balise.
    Si cela ne s'affiche pas comme vous le souhaiter le souci est ailleurs.

    J'ai retravaillé en vue php , mon ide ne retourne aucune erreur :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    <?php
    $req_menu_hor = $bdd->prepare("SELECT id, nom_onglet, lien_onglet FROM menu WHERE auth_view <= :auth ORDER BY ordre_aff ASC");
    $req_menu_hor->bindValue('auth', $level, PDO::PARAM_INT);
    try {
        $req_menu_hor->execute();
    } catch (PDOException $e) {
        echo 'Error : ' . $e->getMessage();
        die();
    }
    ?>
        <div id="header">
            <header class="dark">
                <nav role="navigation">
                    <a href="javascript:void(0);" class="ic menu">
                        <span class="line"></span>
                        <span class="line"></span>
                        <span class="line"></span>
                    </a>
                    <a href="javascript:void(0);" class="ic close"></a>
                    <ul class="main-nav">
                        <?php while ($res_menu_hor = $req_menu_hor->fetch()): ?>
                            <li class="top-level-link">
                                <a
                                    <?php
                                    $recherche_rub = $bdd->prepare("SELECT rubrique_id, nom_rubrique, num_id_menu FROM rubrique_menu WHERE num_id_menu = :id_menu AND auth_view_rubrique <= :auth_rub ORDER BY ordre_rubrique ASC");
                                    $recherche_rub->bindValue('id_menu', $res_menu_hor['id'], PDO::PARAM_INT);
                                    $recherche_rub->bindValue('auth_rub', $level, PDO::PARAM_INT);
                                    try {
                                        $recherche_rub->execute();
                                        $total_rub = $recherche_rub->rowCount();
                                    } catch (PDOException $e) {
                                        echo 'Error : ' . $e->getMessage();
                                        die();
                                    }
                                    if ($total_rub > 0): ?>
                                        class="mega-menu">
                                    <?php endif; ?>
     
                                    <span> 
                                        <?php echo $res_menu_hor['nom_onglet'] ?>
                                    </span>
                                </a>
                                <?php if ($total_rub > 0): ?>
     
                                    <div class="sub-menu-block">
                                        <?php while ($res_rub = $recherche_rub->fetch()):
                                            $rech_img = $bdd->prepare("SELECT lien_img, lien_dest FROM image_menu WHERE id_rub_cor = :num_rub AND auth_view_img <= :auth_sous_ong ORDER BY ordre_aff_img ASC");
                                            $rech_img->bindValue('num_rub', $res_rub['rubrique_id'], PDO::PARAM_INT);
                                            $rech_img->bindValue('auth_sous_ong', $level, PDO::PARAM_INT);
                                            try {
                                                $rech_img->execute();
                                                $total_img = $rech_img->rowCount();
                                            } catch (PDOException $e) {
                                                echo 'Error : ' . $e->getMessage();
                                                die();
                                            }
                                            if ($total_img > 0): ?>
     
                                                <div class="row banners-area">
                                                    <h2 class="sub-menu-head"><?php echo $res_rub['nom_rubrique'] ?></h2>
                                                    <?php
                                                    while ($res_img = $rech_img->fetch()): ?>
     
                                                        <div class="col-md-6 col-lg-6 col-sm-6"><img
                                                                    src="<?php echo $res_img['lien_img'] ?>"
                                                                    width="100%;">
                                                        </div>
     
                                                    <?php endwhile; ?>
     
                                                </div>
     
                                            <?php else: ?>
                                                <div class="row">
                                                <div class="col-md-4 col-lg-4 col-sm-4">
                                                <h2 class="sub-menu-head"><?php echo $res_rub['nom_rubrique'] ?></h2>
                                            <?php endif; ?>
                                            <?php $rech_img->closeCursor();
     
                                            $rech_sous_ong = $bdd->prepare("SELECT nom_s_ong, lien_s_ong FROM sous_menu WHERE cor_id_rub = :num_id_rub AND auth_view_s <= :auth_s_ong ORDER BY ordre_s_ong ASC");
                                            $rech_sous_ong->bindValue('num_id_rub', $res_rub['rubrique_id'],
                                                PDO::PARAM_INT);
                                            $rech_sous_ong->bindValue('auth_s_ong', $level, PDO::PARAM_INT);
                                            try {
                                                $rech_sous_ong->execute();
                                                $total_s_ong = $rech_sous_ong->rowCount();
                                            } catch (PDOException $e) {
                                                echo 'Error : ' . $e->getMessage();
                                                die();
                                            }
                                            if ($total_s_ong > 0): ?>
     
                                                <ul class="sub-menu-lists">
                                                    <?php
                                                    while ($res_sous_ong = $rech_sous_ong->fetch()): ?>
     
                                                        <li>
                                                            <a><?php echo $res_sous_ong['nom_s_ong'] ?>
                                                            </a>
                                                        </li>
     
                                                    <?php endwhile; ?>
                                                </ul>
                                            <?php endif; ?>
     
                                             </div>
                                            </div>
                                            <?php $rech_sous_ong->closeCursor(); ?>
                                        <?php endwhile; ?>
                                    </div>
                                <?php endif; ?>
                                <?php $recherche_rub->closeCursor(); ?>
     
                            </li>
                        <?php
                        endwhile;
                        ?>
                    </ul>
                </nav>
            </header>
        </div>
     
    <?php
    $req_menu_hor->closeCursor();
    ?>

  3. #3
    Membre éclairé
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 238
    Par défaut
    Merci MaitrePylos d'avoir regardé mon code.
    Je ne pensais pas que quelqu'un le ferais.
    C'est pas des erreurs mais des <span> des <div> qui ne se mettent pas au bon endroit.
    je suis en train d'essayer avec des foreach mais sans plus de résultat.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    L'idéal serait de voir à quoi cela ressemble.

  5. #5
    Membre éclairé
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 238
    Par défaut
    Vas voir ici https://sergiocrea.fr
    J'ai récupéré le code source, je suis en train de regarder pourquoi la balise fermante </body> est en rouge.
    il y a par exemple <div class="row"> qui devrait envelopper les deux rubrique femme et homme mais c'est pas grave.
    J'en ai marre lol

  6. #6
    Membre éclairé
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 238
    Par défaut
    Je viens de trouver.
    J'avais oublier de fermer une div
    Merci pour ton aide, je penser pas que quelqu'un aurait lu.
    C'est cool.

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

Discussions similaires

  1. [AC-2013] Problème affichage d'un formulaire depuis une table
    Par alexmax3 dans le forum IHM
    Réponses: 13
    Dernier message: 29/04/2014, 21h26
  2. [Joomla!] Affichage du sous menu dans une position différente
    Par frycrash dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 09/03/2010, 11h32
  3. Réponses: 6
    Dernier message: 12/03/2007, 13h02
  4. problème d'affichage d'un menu sur une image de fond
    Par Nata31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/06/2006, 07h53
  5. [SGBD] affichage d'image jpeg depuis une base mysql
    Par eric_300 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/09/2005, 12h27

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