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

petcha86
Invité n'ayant pas de compte PHPfrance

13 janv. 2017, 00:21

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

Mammouth du PHP | 2703 Messages

13 janv. 2017, 00:27

?><a href='#'><?php echo $Menu['name'];
ce serait mieux de fermer la balise après le nom.

Petit nouveau ! | 2 Messages

13 janv. 2017, 01:01

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 ? ^^

Petit nouveau ! | 2 Messages

13 janv. 2017, 01:33

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

Mammouth du PHP | 1967 Messages

13 janv. 2017, 09:19

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>
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

ViPHP
ViPHP | 1996 Messages

14 janv. 2017, 21:55

Pourquoi dis-tu que l'indentation est importante? Les navigateurs se fichent de l'indentation.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 1967 Messages

15 janv. 2017, 01:42

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
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube