Page 1 sur 1

probleme pour afficher des donnees d'une bdd (basique)...

Posté : 13 janv. 2017, 00:21
par petcha86
bonjour j'ai un petit souci qui me bloque depuis hier je viens de faire un menu d'un site que je récupére via une bdd mais voila en récupérant les données et en faisant mes boucles toutes mes ouvertures fermeture de balise html sont bien positionne pour moi mais les navigateur (chrome / fire ) me faire une balise <a> bien plus tôt que la fin que j'ai indique et je ne sais pas pourquoi je vous reporte mon code pour mieux comprendre

donc voila le php :
<div>
					<a href='#'><img src='img/header/home.png'/></a>
					<?php 
						try{
							$bdd = new PDO('mysql:host=localhost;dbname=site;charset=utf8', 'root', '');
						}
						catch (Exception $e){
							die('erreur : '.$e->getMessage());
						}
						$tbMenu = $bdd->query('select * from menu');
						while($Menu = $tbMenu->fetch()){
							$tbIdMenu = $bdd->query('select distinct idMenu from sousMenu');
							?><a href='#'><?php echo $Menu['name'];
								while($IdMenu = $tbIdMenu->fetch()){
									if($Menu['id'] == $IdMenu['idMenu']){
										$sousMenu = $bdd->query('select nameSousM from sousMenu where idMenu = '.$IdMenu['idMenu']);
										?><div>
											<ul>
											<?php while($nameSousM = $sousMenu->fetch()){
												?><li>
													<a href='#'><?php echo $nameSousM['nameSousM']?></a>
												</li><?php
											}
											?></ul>
										</div>
										<?php
									}
								}
							?></a><?php
						}?></div>
et voila ce que cela donne en arborescence HTML (attention indentation importante ;p) :
<div>
        <a href='#'>
                    <div>
                            <ul>
                                    <li>
                                          <a href='#'></a>
                                    </li>
                                    <li>
                                          <a href='#'></a>
                                    </li>
                           </ul>
                    </div>
        </a>
</div>
et maintenant voila ce que les navigateur me donne comme résultat d’arborescence (indentation toujours importante pour bien comprendre ou ce faire la balise qu'il ne faut pas XD) :
<div>
        [b]<a href='#'>[/b]
                    <div>
                            <ul>
                                    <li>
                                          <a href='#'>
       [b] </a>[/b]
                                    </li>
                                    <li>
                                          <a href='#'></a>
                                    </li>
                           </ul>
                    </div>
                                          </a>
</div>
ce qui est totalement illogique pour moi parce que j'ai beau regarde mon code PHP je ne vois pas ce qui ne fonctionne pas ou est mal place merci de votre aide ;p

Re: probleme pour afficher des donnees d'une bdd (basique)...

Posté : 13 janv. 2017, 00:27
par or 1
?><a href='#'><?php echo $Menu['name'];
ce serait mieux de fermer la balise après le nom.

Re: probleme pour afficher des donnees d'une bdd (basique)...

Posté : 13 janv. 2017, 01:01
par petcha
non justement cette balise la est censé ce fermer à la fin et contenir tout le div suivant avec la liste et les liens ce qui me permettra de créer un menu déroulant ensuite avec le Css sur ce au passage sur ce lien

tu vois ce que je veux dire ? ^^

Re: probleme pour afficher des donnees d'une bdd (basique)...

Posté : 13 janv. 2017, 01:33
par petcha
ok c'est bon la réponse est tellement stupide on ne peut tous simplement pas faire de liens dans un liens sinon il confond la fermeture de balise donc il faut que je trouve un moyen de transformer ma première balise lien en span quand il y'a un sous menu

Re: probleme pour afficher des donnees d'une bdd (basique)...

Posté : 13 janv. 2017, 09:19
par Spols
Ou alors comme dit Or1, tu ferme ta balise directement pour avoir une structure comme celle-ci
<div>
        <a href='#'>
        </a>
        <div>
                <ul>
                        <li>
                              <a href='#'></a>
                        </li>
                        <li>
                              <a href='#'></a>
                        </li>
               </ul>
        </div>
</div>

Re: probleme pour afficher des donnees d'une bdd (basique)...

Posté : 14 janv. 2017, 21:55
par Aureusms
Pourquoi dis-tu que l'indentation est importante? Les navigateurs se fichent de l'indentation.

Re: probleme pour afficher des donnees d'une bdd (basique)...

Posté : 15 janv. 2017, 01:42
par Spols
Elle est importante pour nous permettre de comprendre le problème, ou alors dans le sens que 6 espaces c'est beaucoup pour une indentation