Afficher une ligne en couleur selon une condition
gmoscilla
Messages postés
13
Statut
Membre
-
gmoscilla Messages postés 13 Statut Membre -
gmoscilla Messages postés 13 Statut Membre -
Bonjour,
je débute en programmation et je voudrais afficher une ligne en couleur selon si la valeur de st est inférieure à la valeur de tp, sinon je la laisse en couleur normale.
Je vous donne le code que j'ai testé je pense que c'est pas loin mais pour l'instant rien ne marche.
EDIT : Ajout des balises de code (jordane)
merci !
je débute en programmation et je voudrais afficher une ligne en couleur selon si la valeur de st est inférieure à la valeur de tp, sinon je la laisse en couleur normale.
Je vous donne le code que j'ai testé je pense que c'est pas loin mais pour l'instant rien ne marche.
$sql=" SELECTprodid, tp, st,
FROM produit
LEFT JOIN stock ON produit.prodid =stock.prodid
LEFT JOIN min ON stock.prodid = min.prodid;
$vm_columns = array(
"prodid" =>array("header"=>"Id", "type"=>"label", "width"=>"130px", "align"=>"center", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal"),
"tp" =>array("header"=>"Tp", "type"=>"label", "width"=>"130px", "align"=>"center", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal"),
"st" =>array("header"=>"St", "type"=>"label", "width"=>"130px", "align"=>"center", "wrap"=>"nowrap", "text_length"=>"-1", "case"=>"normal");
$data= $mysqli->query($sql);
while($dnseuil = mysqli_fetch_array($data))
{
if($dnseuil["st"]<=$dnseuil["tp"])
{
$classe = '#FF0000' ;
echo '<td style="background-color: #FF0000">';
}
else
{
$classe = '#FFFFFF';
echo '<td>';
}
}
EDIT : Ajout des balises de code (jordane)
merci !
2 réponses
-
Je viens de voir que tu avais mélangé le style procédural et le style objet ...
$data= $mysqli->query($sql); while($dnseuil = mysqli_fetch_array($data))
Devient :$data= $mysqli->query($sql); while($dnseuil = $data->fetch_array(MYSQLI_ASSOC))
-
Bonjour,
Déjà... il manque une double quote à la fin de ta variable $sql. ainsi qu'une parenthèse à la fin de ton array !
Ensuite.. tu créés une variables "$classe" mais tu ne l'utilises pas. (d'ailleurs.. pourquoi ta class est une couleur ???
Après... st et tp ... sont des champs de quel type dans ta bdd ? Du varchar ? du long ? du int ? une date ???
Si tu fais ceci :$vm_columns = array( "prodid" =>array("header"=>"Id" ,"type"=>"label" ,"width"=>"130px" ,"align"=>"center" ,"wrap"=>"nowrap" ,"text_length"=>"-1" ,"case"=>"normal"), "tp" =>array("header"=>"Tp" ,"type"=>"label" ,"width"=>"130px" ,"align"=>"center" ,"wrap"=>"nowrap" ,"text_length"=>"-1" ,"case"=>"normal"), "st" =>array("header"=>"St" , "type"=>"label" ,"width"=>"130px" ,"align"=>"center" , "wrap"=>"nowrap" ,"text_length"=>"-1" ,"case"=>"normal") ); $sql="SELECT prodid ,tp ,st FROM produit P LEFT JOIN stock S ON P.prodid =S.prodid LEFT JOIN min M ON S.prodid = M.prodid"; $data= $mysqli->query($sql); while($dnseuil = mysqli_fetch_array($data)) { $color = $dnseuil["st"]<=$dnseuil["tp"] ? '#FF0000' : ''; $classe = $dnseuil["st"]<=$dnseuil["tp"] ? '#FFFFFF' : ''; echo '<td style="background-color: '.$color.'" class="'.$classe.'" data-st="'.$dnseuil["st"].'" data-sp="'.$dnseuil["sp"].'">'; }
Fais un clic-droit sur le TD dans ton navigateur et selectionne "inspecter" (ou examiner selon ton navigateur) et regarde le code html qui est généré dans ton navigateur...
-
je t'invite, au passage, à lire (et à appliquer...) ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
-
Merci pour la réponse et pour ces remarques. Oui en effet j'avais oublié des parenthèses et des quotes merci!
Ensuite pour les st et tp ce sont des int, ils représentent des quantités. Et ce que je souhaitais faire c'était faire en sorte que la ligne de mon produit pour lequel son st est inférieur au tp s'affiche en couleur et que sinon il reste normal.
Pour la variable classe c'est parce que j'ai essayé de stocker cela dans une variable mais cela ne va pas.
Mais donc est-ce que c'est possible de le faire avec le code que j'ai là ou pas du tout ?
Merci -
-
-