Problème d'affichage avec une boucle while

Eléphant du PHP | 185 Messages

19 févr. 2007, 21:08

Bonjour à tous,

j'ai un petit soucis d'affichage sur mon site qui selon toute vraisemblance est du à une boucle while. Le problème est le suivant :

Mon site est décomposé en plusieurs blocs générés à l'aide de classes CSS et de balises <div> qui les contiennent. Dans l'un de ces blocs j'affiche un autre bloc plus petit qui contient les News, puis dans un dernier bloc, en pied de page, j'ai une bannière. Le problème, lorsque j'affiche les News dans le bloc au-dessus de celui en pied de page, ce dernier disparaît !

J'ai retourné la chose dans tous les sens, et après de multiples tests pour isoler le problème, j'ai constaté que la boucle while dans le script d'affichage des news était la source des mes maux de tête... :p

Si je supprime la boucle, alors le problème n'est plus, le bloc contenant la bannière en pied de page s'affiche correctement ; sauf que j'aimerai afficher un maximum de 3 News sur ma page d'accueil, et si j'enlève la boucle il n'apparaît qu'une seule News.

Bon, assez discouru, voici pour commencer le script qui affiche les News (affiche_news.php) :
require_once('connexion/configbdd.php');

$connexion=mysql_pconnect($dbhost, $utilisateur, $mdp) or die(mysql_error());
mysql_select_db(nom_de_ma_base, $connexion) or die(mysql_error());

$requete=mysql_query("SELECT id, auteur, date, titre, message FROM news ORDER BY id DESC LIMIT 3") or die(mysql_error());

while ($resultat=mysql_fetch_array($requete) or die(mysql_error())) {
	echo '	<h5>'.$resultat['titre'].'</h5>
			<p>
				<em>Post&eacute; par '.$resultat['auteur'].' le '.$resultat['date'].'</em>
			</p>
			<p>'.nl2br(stripslashes($resultat['message'])).'</p>';
}

mysql_close($connexion);

Et voici la partie du script de la page d'accueil qui nous intéresse (index.php) :
<div class="cadre_centre_droit">
					<h3>Bienvenue sur monsite.com</h3>
					
					<div class="cadre_news">
						<?php
						require_once('affiche_news.php');
						?>
					</div>

				</div>

			<div class="cadre_pied_de_page">
			</div> 
Eh bien voilà, si quelqu'un a déjà été confronté à ce problème et qu'il existe une solution pour le résoudre, je suis preneur ! :)

Merci.

Eléphant du PHP | 177 Messages

19 févr. 2007, 23:47

Salut

Pourrais tu donner le retour html de ce code .

ViPHP
ViPHP | 1961 Messages

20 févr. 2007, 00:03

Bonsoir,

Comment affiches-tu ton pied de page?

Si on regarde ton code,
<div class="cadre_pied_de_page">
            </div>
c'est normal qu'il ne s'affiche pas (Sauf si géré par CSS) ???

As-tu une adresse ou l'on puisse voir le résultat ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

ViPHP
AB
ViPHP | 5818 Messages

20 févr. 2007, 00:33

Bonsoir,

Cela pourrait venir également de ta feuille de style ex : postion absolue qui pourrait écraser ton pieds de page...

Eléphant du PHP | 185 Messages

20 févr. 2007, 01:51

Désolé, j'ai oublié de vous mettre le code CSS...

Code : Tout sélectionner

.cadre_centre_droit { float:left; width:540px; height:454px; border:3px double; border-color:#000000; padding:10px; background-image:url(images/vieux_parchemin.jpg); } .cadre_news { float:left; width:500px; height:150px; border:1px solid; border-color:#000000; padding:5px; background-image:url(images/vieux_parchemin_clair.jpg); overflow:auto; } .cadre_pied_de_page { float:left; width:734px; height:34px; border:3px; border-style:double; border-color:#000000; margin-top:10px; padding:10px; background-image:url(images/banniere_pied_de_page.jpg); }
Comme vous pouvez le constater les images sont chargées dans les blocs grâce aux classe CSS. Les chemins vers les images sont corrects puisque celle qui est censé se trouver dans le pied de page s'affiche dès lors que je supprime la boucle while dans le fichier "affiche_news.php"...

Si vous voulez voir ce que ça donne en direct, c'est par ici -> Lien vers le site

Etant donné que la boucle génère un tableau je me demande si ça ne créé pas un conflit avec mes imbrications de <div> et les classes qui leurs sont associées.

Bon, eh bien je vais continuer à chercher une solution de mon côté... :)

Eléphanteau du PHP | 15 Messages

20 févr. 2007, 08:22

Je n'ai pas de réponse, mais pour tenter de cerner le problème, regarde le code source de ta page, rien n'est affiché après le dernier </p> de ta dernière news...

Donc, en particulier, pas de :
...
					</div>

				</div>

			<div class="cadre_pied_de_page">
			</div> 
Bon courage.

Eléphant du PHP | 185 Messages

20 févr. 2007, 12:50

En effet, c'est curieux, le serveur n'interprète pas la suite du code html...

Est-ce que cela peut venir de mon hébergement ?

Eléphant du PHP | 185 Messages

20 févr. 2007, 15:10

Bon, j'ai finalement opté pour l'affichage d'une seule News... En attendant mieux !

Il faut bien avouer que les News ne sont pas l'essentiel du site et je dois avancer sur un bon nombre d'autres choses... :roll: