Colorer les lignes d'un tableau suivant une condition

Résolu
natoucka Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
jean448 Messages postés 1340 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous!

Je suis débutante dans le php et je me suis lancé dans un projet. mais actuellement je rencontre un problème vers la fin de celui-ci.

En fait je gère des produits qui sont enregisterés dans ma base de données et je voudrai faire une alerte c'est à dire lorsque la quantite de produit est inférieure ou égale a la quantité seuil toute la ligne se met en rouge et sinon la ligne est au vert.

ma table produit contient la désignation, le prix unitaire, la quantité et la quantité seuil

voici un appercu de ceque j'ai dejà eu a essayer mais il ne marche pas


<div>
<h1 align="center">Table des produits</h1>
<table border="1" align="center">

<style>
.lignecoloree {
background-color:#ccc;
}
.lignenormale {
background-color:olive;
}
</style>
<?php
mysql_connect("localhost","root","");
mysql_select_db("gestion_stock");
$seuil = mysql_query("SELECT* FROM produit");
echo "<tr>
<th>Designation</th>
<th>Prix Unitaire</th>
<th>Quantité</th>
<th>Quantité Seuil</th>
</tr>";?>
<tr class="<?php echo isset($seuils['designation']) && $seuil['quantité'] >$seuils['quantite_seuil'] ? 'lignecoloree' : 'lignenormale';?>">
<td><?php echo $seuil['designation']; ?></td>
<td><?php echo $seuil['pu']; ?></td>
<td><?php echo $seuil['quantite']; ?></td>
<td><?php echo $seuil['quantite_seuil']; ?></td>
</tr>


</table>

</div>



le code ci-dessus affiche l'entete du tableau mais pas son contenu. et il ne tient compte que du css de la ligne_normale.

votre aide me sera vraiment précieuse. merci d'avance.
A voir également:

3 réponses

jean448 Messages postés 1340 Date d'inscription   Statut Membre Dernière intervention   238
 
Salut

Tu as un problème d’encadrement ( parenthèse), un isset dans une condition ternaire me parait étrange

Ce code devrait fonctionner

<?php 
if(isset($seuils['designation'])){
	
	echo  ($seuil['quantité'] >$seuils['quantite_seuil'] ? 'lignecoloree' : 'lignenormale');	
}

?>



Sinon tu devrais utiliser mySQLi car mySQL est obsolète


//Pour se connecter
$mysqli = new mysqli("localhost", "root", "", "gestion_stock");

//Exemple de select avec mySQLi
$reqSeuil = $mysqli->query("SELECT* FROM produit");
$dnSeuil = mysqli_fetch_array($reqSeuil);



tu débute en php si tu as l'intention d’approfondir une fois que tu maîtrise tout cela passe au modèle MVC car dans le milieu pro tu verra jamais des requêtes php avec de l'HTML ^^
c'est du plus..

--
0
natoucka Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai modifier le code avec les modifications le voici

<div>
<h1 align="center">Table des produits</h1>
<table border="1" align="center">

<style>
.lignecoloree {
background-color:red;
}
.lignenormale {
background-color:blue;
}
</style>
<?php
$mysqli = new mysqli("localhost", "root", "", "gestion_stock");

//Exemple de select avec mySQLi
$reqSeuil = $mysqli->query("SELECT* FROM produit");
$dnseuil = mysqli_fetch_array($reqSeuil);
echo "<tr>
<th>Designation</th>
<th>Prix Unitaire</th>
<th>Quantité</th>
<th>Quantité Seuil</th>
</tr>";
if(isset($dnseuils['designation'])){

$classe=$dnseuil['quantité']<=$dnseuil['quantite_seuil'] ? 'lignecoloree' : 'lignenormale';
?>
<tr class="<?php echo $classe; ?>">
<td><?php echo $dnseuil['designation']; ?></td>
<td><?php echo $dnseuil['pu']; ?></td>
<td><?php echo $dnseuil['quantite']; ?></td>
<td><?php echo $dnseuil['quantite_seuil']; ?></td>
</tr>
<?php }?>


</table>

</div>




mais il ne donne toujour pas . je sais pa si je m'y prend mal.
0
natoucka Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai trouver la solution j'ai opéré tes modif ici et j'avais oublié la boucle while maintenant ca marche

<div>
<h1 align="center">Table des produits</h1>
<table border="1" align="center">

<style>
.lignecoloree {
background-color:#CC0033;
}
.lignenormale {
background-color:#33FFCC;
}
</style>
<?php
$mysqli = new mysqli("localhost", "root", "", "gestion_stock");

//Exemple de select avec mySQLi
$reqSeuil = $mysqli->query("SELECT* FROM produit");
echo "<tr>
<th>Designation</th>
<th>Prix Unitaire</th>
<th>Quantité</th>
<th>Quantité Seuil</th>
</tr>";
while($dnseuil = mysqli_fetch_array($reqSeuil)){
$classe=isset($dnseuil['designation']) && $dnseuil['quantite']<=$dnseuil['quantite_seuil'] ? 'lignecoloree' : 'lignenormale';?>
<tr class="<?php echo $classe; ?>">
<td><?php echo $dnseuil['designation']; ?></td>
<td><?php echo $dnseuil['pu']; ?></td>
<td><?php echo $dnseuil['quantite']; ?></td>
<td><?php echo $dnseuil['quantite_seuil']; ?></td>
</tr>
<?php } ?>

</table>

</div>


merci pour l'aide.
0
jean448 Messages postés 1340 Date d'inscription   Statut Membre Dernière intervention   238
 
C'est exactement ça !

précision pour mySQLi plus précisément

$reqSeuil
$dnSeuil

n'est pas une norme juste "ma" façon de faire

dans $reqSeuil le req signifie requête et
dans $dnSeuil le dn pour données

on stock la requête dans $req et le retour du fetch array dans $dn, tu peux évidement les appeler comme tu veux, c'est juste une manière d’éclaircir :)
0