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 !
        A voir également:         
- Afficher une ligne en couleur selon une condition
- Excel cellule couleur si condition texte - Guide
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
2 réponses
                        
                    Je viens de voir que tu avais mélangé le style procédural et le style objet ...
Devient :
 
                
                
    
                $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 :
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...
 
                
                
    
                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
    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
 
    
    
    
    
Je ne sais plus quoi faire !
Et bien entendu... montre nous ce que ça donne.....
J'ai ce genre de choses
Une autre solution est d'afficher le code source de la page ( CTRL + U en général) et chercher le code du tableau et des TD dedans et nous le coller ici...