Operateur logique ne fonctionne pas

Messages postés
6
Date d'inscription
lundi 27 mai 2019
Statut
Membre
Dernière intervention
7 juin 2019
-
Bonjour, voici mon code il donne la couleur just via date_peremption et pas via le stock comme si il passe pas via le or
<?php
            $date_peremption="";
            while($row = $result->fetch_assoc()): ?>
                <tr <?php
                if((strtotime($row['date_peremption'] < strtotime(date('Y-m-d'))or((int)$row['stock_urgence']=0)) //  red
    {
        echo "<td style='background-color: #f09d8e;'>" ;
    }
    else if(strtotime($row['date_peremption']) >= strtotime(date('Y-m-d'))or(int)$row['stock_urgence']>=0)//  green or yellow
    {
        $dif="";
        $now = time(); // or your date as well
        $your_date = strtotime($row['date_peremption']);
        $datediff = $your_date-$now ;
        $dif=$datediff / (60 * 60 * 24);
        echo round($dif);
        if ((round($dif)>=40)or((int)$row['etat_stock']=0)and(int)$row['stock_urgence']>0){
        echo "<td style='background-color: #cde8bc;'>" ;
         }
    else  //  yellow
    {
        echo "<td style='background-color: #eee7b9;'>";
    }
    }?>
Afficher la suite 

1 réponse

0
Merci
Bonjour, il y a deux petites erreurs au niveau des test d'égalité. Ce n'est pas un simple égale "=" mais un double "==" voir même un triple "===" afin de tester l'égalité du typage en même temps. Attention a fermer la balise ouvrante <tr> également ! Ce qui donnerait :

<?php
$date_peremption="";
while($row = $result->fetch_assoc()): ?>
<tr> <?php
if((strtotime($row['date_peremption'] < strtotime(date('Y-m-d'))or((int)$row['stock_urgence']===0)) // red
{
echo "<td style='background-color: #f09d8e;'>" ;
}
else if(strtotime($row['date_peremption']) >= strtotime(date('Y-m-d'))or(int)$row['stock_urgence']>===0)// green or yellow
{
$dif="";
$now = time(); // or your date as well
$your_date = strtotime($row['date_peremption']);
$datediff = $your_date-$now ;
$dif=$datediff / (60 * 60 * 24);
echo round($dif);
if ((round($dif)>=40)or((int)$row['etat_stock']===0)and(int)$row['stock_urgence']>0){
echo "<td style='background-color: #cde8bc;'>" ;
}
else // yellow
{
echo "<td style='background-color: #eee7b9;'>";
}
}?>
Commenter la réponse de Gony_