IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

tables avec <tr> en couleur de fond alternés [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 215
    Par défaut tables avec <tr> en couleur de fond alternés
    bonjour,
    jai un probleme avec le code suivant, je voudrais avoir des couleur alterné sur les <tr> généré le probleme est que pour l'instant je genere 5 copie de chaque entré dans la base et je n'ai besoin que d'une(voir jpg), merci de votre aide:
    jpg:
    http://img141.imageshack.us/img141/8329/tableh.jpg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     <?php  $connection = mysql_connect('localhost', 'root', '');
    mysql_query($connection);
    mysql_select_db('formulaire');
     
    $query="SELECT COUNT(id) FROM data";
    echo $count=mysql_result(mysql_query($query),0);
     
    ?>
     
    <table cellpadding="15"  border="1">
      <tr>
        <td><b>nom</b></td>
        <td><b>prenom</b></td>
        <td><b>civilite</b></td>
        <td><b>email</b></td>
        <td><b>adresse</b></td>
      </tr>
       <?php $result = mysql_query("select * from data order by id asc");
    while($row = mysql_fetch_assoc($result)){   ?>
    <?php  for($i=0;$i<$count;$i++){ $bgcolor=($i%2)?"#E0E0E0":"white"    ?>
      <tr bgcolor="<?=  $bgcolor   ?>">
     
        <td><?php echo $row["nom"]; ?></td>
        <td><?php echo $row["prenom"]; ?></td>
        <td><?php echo $row["civilite"]; ?></td>
        <td><?php echo $row["email"]; ?></td>
        <td><?php echo $row["adresse"]; ?></td>
        <?php  }  ?>
              <?php  } ?>
      </tr>
     
    </table>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu n'as pas besoin de savoir combien il y a de lignes au total
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php  $connection = mysql_connect('localhost', 'root', '');
    mysql_query($connection);
    mysql_select_db('formulaire');
     
    echo '
    <table cellpadding="15"  border="1">
      <tr>
        <td><b>nom</b></td>
        <td><b>prenom</b></td>
        <td><b>civilite</b></td>
        <td><b>email</b></td>
        <td><b>adresse</b></td>
      </tr>';
     
    $result = mysql_query("select * from data order by id asc");
    $i = 0;
    while($row = mysql_fetch_assoc($result)){
     ($i%2) ? $bgcolor=#E0E0E0":$bgcolor="white";
      echo '<tr bgcolor="' . $bgcolor   .'">
        <td>'. $row["nom"] .'</td>
        <td>'. $row["prenom"].'</td>
        <td>'. $row["civilite"].'</td>
        <td>'. $row["email"].'</td>
        <td>'. $row["adresse"].'</td>
      </tr>';
    $i++;
    }
    </table>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut
    Bonjour,

    Tu a déjà une boucle while donc pas besoin de boucle for.

    Essaye comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     <?php  $connection = mysql_connect('localhost', 'root', '');
    mysql_query($connection);
    mysql_select_db('formulaire');
     
    $query="SELECT COUNT(id) FROM data";
    echo $count=mysql_result(mysql_query($query),0);
     
    ?>
     
    <table cellpadding="15"  border="1">
      <tr>
        <td><b>nom</b></td>
        <td><b>prenom</b></td>
        <td><b>civilite</b></td>
        <td><b>email</b></td>
        <td><b>adresse</b></td>
      </tr>
       <?php $result = mysql_query("select * from data order by id asc");
    $i = 0;
    while($row = mysql_fetch_assoc($result)){   ?>
    <?php $bgcolor=($i%2)?"#E0E0E0":"white"; $i++    ?>
      <tr bgcolor="<?=  $bgcolor   ?>">
     
        <td><?php echo $row["nom"]; ?></td>
        <td><?php echo $row["prenom"]; ?></td>
        <td><?php echo $row["civilite"]; ?></td>
        <td><?php echo $row["email"]; ?></td>
        <td><?php echo $row["adresse"]; ?></td>
        <?php  } ?>
      </tr>
     
    </table>
    Sinon , je te conseille (aux vues de ta maniere de coder), d'utiliser while(): endwhile;

    ça donnerais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     <?php  $connection = mysql_connect('localhost', 'root', '');
    mysql_query($connection);
    mysql_select_db('formulaire');
     
    $query="SELECT COUNT(id) FROM data";
    echo $count=mysql_result(mysql_query($query),0);
    ?>
    <table cellpadding="15"  border="1">
      <tr>
        <td><b>nom</b></td>
        <td><b>prenom</b></td>
        <td><b>civilite</b></td>
        <td><b>email</b></td>
        <td><b>adresse</b></td>
      </tr>
       <?php $result = mysql_query("select * from data order by id asc");
    $i = 0;
    while($row = mysql_fetch_assoc($result)):   ?>
    <?php $bgcolor=($i%2)?"#E0E0E0":"white"; $i++    ?>
      <tr bgcolor="<?=  $bgcolor   ?>">
     
        <td><?php echo $row["nom"]; ?></td>
        <td><?php echo $row["prenom"]; ?></td>
        <td><?php echo $row["civilite"]; ?></td>
        <td><?php echo $row["email"]; ?></td>
        <td><?php echo $row["adresse"]; ?></td>
        <?php  endwhile; ?>
      </tr>
     
    </table>

    Voila bonne soirée !

    EDIT : Trop lent, parcontre, j'aimait bien la maniere de séparer php et html.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 215
    Par défaut
    merci beaucoup!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Par défaut
    bonjour,
    une prémisse de solution qui sépare données et présentation.
    Dans cet exemple je joue sur des classes CSS et sur le MODULO (les lignes impaires et les lignes paires)
    Au final le CSS devra être dans un fichier CSS et il devra y avoir un link vers ce fichier.
    En fait je teste la "parité" de la ligne avec l'opérateur MODULO de PHP ie %.
    En fonction du résultat du module telle ou telle "class" est affectée à la <tr>.
    Le code est à adapté à votre table de BD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
     
    <style type="text/css">
    <!--
    table{border-collapse:collapse; border-spacing:10px; }
    .impaire{background-color: #FFFF00; }
    .paire{background-color: #FF00FF; }
    td{border:#000000 thin solid; }
    -->
    </style>
    </head>
     
    <body>
    <table>
    <?php 
    mysql_connect("localhost","root","");
    mysql_select_db("cours");
     
    $rs = mysql_query("SELECT cp, nom_ville from villes"); 
    $tableAlternee = "";
    $i=0;
    while($enr = mysql_fetch_row($rs)) 
    {
    	if($i % 2 == 1) $tableAlternee .= "<tr class='impaire'><td>$enr[0]</td><td>$enr[1]</td></tr>";
    	else $tableAlternee .= "<tr class='paire'><td>$enr[0]</td><td>$enr[1]</td></tr>";
    	$i++;
    }
    echo $tableAlternee;
    ?>
    </table>
    </body>
    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] marquer des doublons dans un table avec une couleur
    Par moradsoft dans le forum WinDev
    Réponses: 2
    Dernier message: 31/12/2013, 09h56
  2. [WD17] table avec écart de date + couleur
    Par doudoujet dans le forum WinDev
    Réponses: 4
    Dernier message: 17/12/2013, 21h44
  3. [phpToPDF] Couleurs de fond alternatives une ligne sur 2
    Par fred23195 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/08/2010, 14h56
  4. [Access] Nom d'une table avec un espace dans SQL
    Par Corsaire dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/04/2006, 15h50
  5. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo