Donner du style à l'affichage d'une base de donnée mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Donner du style à l'affichage d'une base de donnée mysql

par RDLG2A » 05 juil. 2005, 09:57

Pourquoi n'utilises tu pas une boucle for...? Tu déclares tout dans les conditions for.....

J'avais la même pbmatique que toi. En déclarant ma variable couleur ainsi...ça marche....

for($i;$i<mysql_fetch_array($result);i++) {
$couleur = ($i % 2 == 0) ? "#99ccff":"#ffffff";

<tr>
<td bgcolor="<?php echo($couleur); ?>" width="400">
<b><?php echo($row["fonction"]); ?></a></b><br>
<?php echo($row["profil_rechercher"]); ?>
</td>
<td bgcolor="<?php echo($couleur); ?>" align="center" valign="top"><?php echo($row["societe"]); ?></td>
<td bgcolor="<?php echo($couleur); ?>" align="center" valign="top">$row["date"]</td>
</tr>

}

par castelli » 21 juin 2005, 17:05

G rien dit oublié lol :lol:

par castelli » 21 juin 2005, 17:03

J'ais essailler d'appliquer votre exemple a mon code et chez moi sa ne fonctionne pas ...
Este ce parce que mon tableau n'est qu'en php ??
if(mysql_num_rows($result) >=1) echo "<table border=1><TR bgcolor=\"#CCFFCC\"><TH>Nom</TH><TH>Formule</TH><TH>Référence</TH><TH>Disponibilité</TH><TH>Localisation</TH><TH>Quantité</TH><TH>Numero_cass</TH><TH>Action</th></TR>";


$c = 0; 
while ($voir = mysql_fetch_assoc($result)) {

$couleur = ($c % 2 == 0) ? "#ffffff":"#9999ff"; 

echo"<tr>
<td><font face='Verdana' size='2'>".$voir['nom']."</font></td>

<td><font face='Verdana' size='2'>".$voir['formule']."</font></td>

<td><font face='Verdana' size='2'>" .$voir['reference']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['disponibilite']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['localisation']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['quantite']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['numero_cass']. "</font></td>

<td><font face='Verdana' size='2'><form><input type='button' value='Commander' onClick=\"window.open('maj.php?id=".$voir['reference']."','nouvelle','width=600, height=900, toolbar=no, resizable=no');\"></form></td></tr>";
}

echo "</table>"; 

par pjl » 21 juin 2005, 16:45

Peut-être déplacer le fil en section "Débuter PHP" ?

par pingoo » 21 juin 2005, 16:44

Merci pour tout c'est exactement ce que je cherchais. :D

par Cyrano » 21 juin 2005, 06:53

si ok, tu voudrais alterner deux couleurs de fond une ligne sur deux: principe de base : avant ta boucle while, tu initialise un pointeur à 0;

Voici ton code revu et corrigé pour faire ça :
<?php
$select = "SELECT secteur_activite, fonction, societe, DATE_FORMAT(date, '%d.%m.%y') date, profil_rechercher FROM fk_offre_emploi where secteur_activite LIKE '$secteur_activite%'";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total)
{
    // debut du tableau
?>
<table width="750" align="center" border="0" cellpadding="3" cellspacing="1" summary="" bgcolor="#FFFFFF">
  <tr height="5">
    <td bgcolor="#05A9CC" width="400" height="5"><b>Poste/Fonction</b></td>
    <td bgcolor="#69BFCC" height="5" align="center"><b>Société</b></td>
    <td bgcolor="#81CCCC" height="5" align="center"><b>Paru le</b></td>
  </tr>
    <?php
    /* On crée un pointeur pour l'alternance de coleur de fond */
    $c = 0;
    while($row = mysql_fetch_array($result))
    {
        /* Si le pointeur est pair, couelur de fond blanc, impair bleu */
        $couleur = ($c % 2 == 0) ? "#ffffff":"#9999ff";
        ?>
  <tr>
    <td bgcolor="<?php echo($couleur); ?>" width="400">
      <b><?php echo($row["fonction"]); ?></a></b><br>
      <?php echo($row["profil_rechercher"]); ?>
    </td>
    <td bgcolor="<?php echo($couleur); ?>" align="center" valign="top"><?php echo($row["societe"]); ?></td>
    <td bgcolor="<?php echo($couleur); ?>" align="center" valign="top">$row["date"]</td>
  </tr>
        <?php
        /* On oublie pas d'incrémenter le pointeur */
        $c++;
    }
?>
</table>
<?php
// fin du tableau.
}
?>
Note: quand tu fais du code, ne fais pas interpréter inutilement du html à PHP: il vaut mieux fermer une balise PHP, mettre du HTML normal et rouvrir PHP : au niveau des délai d'exécution on accélère le traitement. Un petit bout ici, un autre là, un autre ailleurs, ça finit par optimiser pas mal une application.

par pingoo » 21 juin 2005, 06:34

Je ne voit pas trop comment faire.
Lorsque j'affiche les données de ma base mysql exemple :
'.$row["societe"].'
toutes les données s'affiche et je n'arrive pas à donner de couleur de fond de tableau différent d'une ligne à l'autre.
societe paru le
en bleu tf1 22/05/2005
en blanc m6 25/06/2005
en bleu fr2 28/05/2005
en blanc fr3 29/06/2005
...

Je ne suis pas très claire désolé et merci pour votre aide.

par Cyrano » 21 juin 2005, 00:06

utilise des styles et pour la première ligne, au lieu d'utiliser des balises <td>, utilise des balises <th> dans lesquelles le texte est automatiquement centré (ce que tu peux modifier avec un style CSS du reste)

Donner du style à l'affichage d'une base de donnée mysql

par pingoo » 20 juin 2005, 23:01

Bonjour, je recherche depuis quelques temps comment changer la couleur de fond d'une base mysql.
Je veut dire lorsque l'on affiche les données dans un tableau j'aimerais que la première ligne soit d'une couleur de fond différente à la deuxième.
Voici mon script :
<?php
$select = "SELECT secteur_activite, fonction, societe, DATE_FORMAT(date, '%d.%m.%y') date, profil_rechercher FROM fk_offre_emploi where secteur_activite LIKE '$secteur_activite%'";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
    // debut du tableau
    echo '<table width="750" align="center" border="0" cellpadding="3" cellspacing="1" summary="" bgcolor="#FFFFFF">'."\n";
    echo '<tr height="5">';
    echo '<td bgcolor="#05A9CC" width="400" height="5"><b>Poste/Fonction</b></td>';
    echo '<td bgcolor="#69BFCC" height="5" align="center"><b>Société</b></td>';
    echo '<td bgcolor="#81CCCC" height="5" align="center"><b>Paru le</b></td>';
    echo '</tr>'."\n";    
    while($row = mysql_fetch_array($result)) {
    echo '<tr>';
    echo '<td bgcolor="#CCCCCC" width="400"><b>'.$row["fonction"].' </a></b><br>
	 '.$row["profil_rechercher"].'</td>';
    echo '<td bgcolor="#CCCCCC" align="center" valign="top">'.$row["societe"].'</td>';
    echo '<td bgcolor="#CCCCCC" align="center" valign="top">'.$row["date"].'</td>';
    echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
Merci pour votre aide :D