[php]boucle while

Résolu/Fermé
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 29 juil. 2006 à 17:05
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 - 31 juil. 2006 à 14:17
bonjour

j'ai crée 3 boucles while, pour afficher 3 sortes de personnes présentes dans ma bdd.
J'ai donc placé AVANT chaque boucle un <h3></h3> différent(ex.fort, moyen, faible).
Les boucles se font bien, mais la couleur d'arrière plan du h3 passe derrière les résultats des boucles et donc on ne voit rien.
(fond titre = couleur 1 titre = couleur 2
fond texte = couleur 2 texte = couleur 1)
Quelqu'un sait d'ou vient le problème???

merci
A voir également:

3 réponses

Cypselos Messages postés 64 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 5 juillet 2008 8
29 juil. 2006 à 17:47
Salut.

On aurait besoin de voir l'ensemble du code concerné (les 3 boucles et les tags html comme tes h3 qui ont ici de l'importance).
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
30 juil. 2006 à 00:22
ok eh ben voilà le code alors..
ps:avant de me le faire remarquer, oui je sais bien qu'il y a une ligne inutillement répettée(mysql_fetch_array), on doit toujours tout essayer non??:
mysql_connect($serveur, $utilisateur, $password);
mysql_select_db($base);

?>
<h3>niveau 3</h3>
<?php

$retour = mysql_query("SELECT id, login, niveau FROM ma_table ORDER BY id DESC");
while($donnees = mysql_fetch_array($retour))
{
?>

<?php
if($donnees['niveau'] == 'niveau_3')
{
?>

<?php
echo $donnees['login'];
?>
<br>
<?php
}
?>
<?php
}
?>
<h3>niveau 2</h3>
<?php
$retour = mysql_query("SELECT id, login, niveau FROM ma_table ORDER BY id DESC");
while($donnees = mysql_fetch_array($retour))
{
?>

<?php
if($donnees['niveau'] == 'niveau_2')
{
?>

<?php
echo $donnees['login'];
?>
<br>
<?php
}
?>

<?php
}
?>
<h3>niveau 1</h3>
<?php
$retour = mysql_query("SELECT id, login, niveau FROM ma_table ORDER BY id DESC");
while($donnees = mysql_fetch_array($retour))
{
?>

<?php
if($donnees['niveau'] == 'niveau_1')
{
?>

<?php
echo $donnees['login'];
?>


<?php
}
?>

<?php
}
?>
0
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
31 juil. 2006 à 10:22
Salut. Voila ce que je ferais plutôt à ta place (code épuré) :
<?
mysql_connect($serveur, $utilisateur, $password);
mysql_select_db($base);

$retour = mysql_query("SELECT id, login, niveau FROM ma_table ORDER BY id DESC");
while($donnees = mysql_fetch_array($retour))
{

   if($donnees['niveau'] == 'niveau_3')
   {
      echo "<h3>niveau 3</h3>";
      echo $donnees['login']."<BR>";
   }
}

while($donnees = mysql_fetch_array($retour))
{
   if($donnees['niveau'] == 'niveau_2')
   {
      echo "<h3>niveau 2</h3>";
      echo $donnees['login']."<BR>";
   }
}

while($donnees = mysql_fetch_array($retour))
{
   if($donnees['niveau'] == 'niveau_1')
   {
      echo "<h3>niveau 1<h3>";
      echo $donnees['login'];
   }
}
?>


Et encore c'est pas très satisfaisant car il doit être possible de faire ça en une seule boucle while mais je vois pas trop comment le faire assez simplement.
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
31 juil. 2006 à 12:14
ok c'est bon, il y avait 2 balises EN TROP dans le code et c'est ça qui clochait.

merci pour "l'épuration" du code Darshu.

a+
0
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
31 juil. 2006 à 14:17
Pas de problème :) Mais comme je l'ai déja dit, ça doit être possible de faire tout ça en une seule boucle while pour économiser un peu de ressources, mais ça demanderait un peu plus de réflexion.
0