Rechercher : dans
Par :

[php]boucle while

Dernière réponse le 31 jui 2006 à 14:17:10 maxime_B, le 29 jui 2006 à 17:05:34 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [php]boucle while » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

1

Cypselos, le 29 jui 2006 à 17:47:44

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).

Répondre à Cypselos

2

maxime_B, le 30 jui 2006 à 00:22:41

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

Répondre à maxime_B

3

Darshu, le 31 jui 2006 à 10:22:42

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.

T'as pensé à regarder sur Google avant de poser ta question ? 

Répondre à Darshu

4

maxime_B, le 31 jui 2006 à 12:14:32

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+

Répondre à maxime_B

5

 Darshu, le 31 jui 2006 à 14:17:10

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.

T'as pensé à regarder sur Google avant de poser ta question ­? 

Répondre à Darshu