Tableau PHP: lier une condition à un champ

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 : Tableau PHP: lier une condition à un champ

par mcorgnet » 15 juin 2008, 00:36

Si tu veux afficher en ROUGE toutes les lignes dont le champ « salaire » est supérieur à 2000.
 
if($row['Salaire']>2000) {
    $color = "red";
}
else {
    $color = "#CCCCCC";
}

Pis on en parle jamais assez : l'opérateur ternaire.
$color = $row['Salaire'] > 2000 ? 'red' : '#cccccc';
Qui fait gagner pas mal de lignes, et qu'est très lisible.

par sadeq » 14 juin 2008, 09:50

Si tu veux afficher en ROUGE toutes les lignes dont le champ « salaire » est supérieur à 2000.
 
if($row['Salaire']>2000) {
    $color = "red";
}
else {
    $color = "#CCCCCC";
}
En suite, tu places $color dans l'attribut bgcolor.

bgcolor : colore le fond d'une balise
Pour colorer le texte, il faut utiliser un style style='color: red'

Cela donnerait :
Coloration du fond (bgcolor):
// lecture et affichage des résultats sur 7 colonnes 
while($row = mysql_fetch_array($resultat)) { 

//déterminer la couleur de la ligne (rouge si salaire>2000)
if($row['Salaire']>2000) {
    $color = "red";
}
else {
    $color = "#CCCCCC";
}

//afficher
echo '<tr>'; 
echo '<td bgcolor="'.$color.'">'.$row['Champ1'].'</td>'; 
echo '<td bgcolor="'.$color.'">'.$row['Champ2'].'</td>'; 
echo '<td bgcolor="'.$color.'">'.$row['Champ3'].'</td>'; 
echo '<td bgcolor="'.$color.'">'.$row['Champ4'].'</td>'; 
echo '<td bgcolor="'.$color.'">'.$row['Champ5'].'</td>'; 
echo '<td bgcolor="'.$color.'">'.$row['Champ6'].'</td>'; 
echo '<td bgcolor="'.$color.'">'.$row['Salaire'].'</td>';
echo '</tr>'."\n"; 
}  
ou bien pour la coloration du texte (style color):
// lecture et affichage des résultats sur 7 colonnes 
while($row = mysql_fetch_array($resultat)) { 

//déterminer la couleur de la ligne (rouge si salaire>2000)
if($row['Salaire']>2000) {
    $color = "red";
}
else {
    $color = "black";
}

//afficher
echo '<tr>'; 
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Champ1'].'</td>'; 
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Champ2'].'</td>'; 
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Champ3'].'</td>'; 
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Champ4'].'</td>';  
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Champ5'].'</td>'; 
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Champ6'].'</td>'; 
echo '<td bgcolor="#CCCCCC" style="color: '.$color.'">'.$row['Salaire'].'</td>'; 
echo '</tr>'."\n"; 
}  

par katagoto » 14 juin 2008, 09:22

<html> 
<body> 
<?php 
// information pour la connection à le DB 
$host = 'localhost'; 
$user = 'root'; 
$pass = ''; 
$db = 'mabase'; 

// connection à ma base 
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); 
mysql_select_db($db) or die ('Erreur :'.mysql_error()); 

//récupère tous les enregistrements et compte le nombre total de réponse 
$select = 'SELECT * FROM t_Celebrite'; 
$resultat = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); 
$total = mysql_num_rows($resultat); 


// Affichage de résultat sous forme de tableau. 
if($total) { 
// début du tableau 
echo '<table bgcolor="#FFFFFF">'."\n"; 
// première ligne on affiche les titres de tous les champs 
echo '<tr>'; 
echo '<td bgcolor="#669999"><b><u>Champ1</u></b></td>'; 
echo '<td bgcolor="#669999"><b><u>Champ2</u></b></td>'; 
echo '<td bgcolor="#669999"><b><u>Champ3</u></b></td>'; 
echo '<td bgcolor="#669999"><b><u>Champ4</u></b></td>'; 
echo '<td bgcolor="#669999"><b><u>Champ5/u></b></td>'; 
echo '<td bgcolor="#669999"><b><u>Champ6</u></b></td>'; 
echo '<td bgcolor="#669999"><b><u>Salaire</u></b></td>'; 
echo '</tr>'."\n"; 
// lecture et affichage des résultats sur 7 colonnes 
while($row = mysql_fetch_array($resultat)) { 
echo '<tr>'; 
echo '<td bgcolor="#CCCCCC">'.$row['Champ1'].'</td>'; 
echo '<td bgcolor="#CCCCCC">'.$row['Champ2'].'</td>'; 
echo '<td bgcolor="#CCCCCC">'.$row['Champ3'].'</td>'; 
echo '<td bgcolor="#CCCCCC">'.$row['Champ4'].'</td>'; 
echo '<td bgcolor="#CCCCCC">'.$row['Champ5'].'</td>'; 
echo '<td bgcolor="#CCCCCC">'.$row['Champ6'].'</td>'; 
if($row['Salaire']>2000) echo '<td bgcolor="red">'.$row['Salaire'].'</td>';
else echo '<td bgcolor="red">'.$row['Salaire'].'</td>';
echo '</tr>'."\n"; 
} 
echo '</table>'."\n"; 
// fin du tableau. 
} 
else echo 'Pas d\'enregistrements dans cette table...'; 

// on libère le résultat 
mysql_free_result($resultat); 

?> 
</body> 
</html>
Avec Les balises ça va mieu ^^

Code : Tout sélectionner

[php][/php]
Je ne connais pas les balises de couleur (x)HTML par coeur, mais je penses que tu as compris...

Tableau PHP: lier une condition à un champ

par mapasa » 14 juin 2008, 07:34

Bonjour à Tous,

Je récupère le résultat d’une requête SQL sous forme de tableau avec 7 colonnes. Jusque la tout se passe bien. J’aimerai introduire une condition sur le champ7 (champ « salaire » dans mon exemple.). J’aimerai afficher en ROUGE toutes les lignes dont le champ « salaire » est supérieur à 2000. Toutes mes tentatives ont échouées. Quelqu’un connaît-il la solution ??

Voici ci-dessous les sources de mon exemple dans lesquelles je n’arrive pas à ajouter la condition de couleur ROUGE pour les lignes dont le champ 7 (salaire) est supérieur à 2000.

Par avance, merci de vos réponses.

<html>
<body>
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mabase';

// connection à ma base
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

//récupère tous les enregistrements et compte le nombre total de réponse
$select = 'SELECT * FROM t_Celebrite';
$resultat = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($resultat);


// Affichage de résultat sous forme de tableau.
if($total) {
// début du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres de tous les champs
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Champ1</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Champ2</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Champ3</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Champ4</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Champ5/u></b></td>';
echo '<td bgcolor="#669999"><b><u>Champ6</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Salaire</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 7 colonnes
while($row = mysql_fetch_array($resultat)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['Champ1'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['Champ2'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['Champ3'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['Champ4'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['Champ5'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['Champ6'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['Salaire'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($resultat);

?>
</body>
</html>