Utilisation de plusieurs if

Résolu
Bonjour,

Après plusieurs essais je n'arrive pas à passer dans les différentes conditions que je demande. Je n'arrive pas à trouver mon erreur j'ai surement dû oublier quelques chose.

  $fonction = $result[0]['fonction'];
  $societe = $result[0]['societe'];

  var_dump ($fonction);
  var_dump ($societe);  

  if ($societe == 30 && $fonction == 2 || $fonction == 17 || $fonction == 34)
  {
    $fonction = $result[0]['fonction'];
    $societe = $result[0]['societe'];
  }
  if ($societe == 30 && $fonction != 2 || $fonction != 17 || $fonction != 34)  
  {
    $fonction = 0;
  }
  if ($societe != 30 && $fonction == 2 || $fonction == 17 || $fonction == 34) 
  {
    $societe = 0;
  }
  if ($societe != 30 && $fonction != 2 || $fonction != 17 || $fonction != 34)
  {
    $fonction = 0;
    $societe = 0; 
  }

  var_dump ($fonction);
  var_dump ($societe);


J'espère que quelqu'un pourra m'aider.

5 réponses

  1. Modérateur
    Bonjour,

    Pour certaines de tes conditions ce n'est pas un OR qu'il faut utiliser .. mais un AND.

    Ou sinon.. il faut réécrire ton code un peu différemment..
    Par exemple
      if($societe == 30 ){   
        if($fonction == 2 || $fonction == 17 || $fonction == 34 ){
          $fonction = $result[0]['fonction'];
          $societe = $result[0]['societe'];
        }else{
          $fonction = 0;
        }
      }else{
        if($fonction == 2 || $fonction == 17 || $fonction == 34){
          $societe = 0;
        }else{
          $fonction = 0;
          $societe = 0; 
        }
      }
    

    1. Oula c'est un casse tête ton code! Moi qui ne suis pas expert php, pourquoi ne pas utiliser un Case ou un Else if?
      1. Modérateur
        Bonjour
        je confirme ... je vois pas ce que fait ton truc ...
        De plus, toutes tes conditions sont les mêmes ...
        1. J'ai déjà essayé avec un elseif justement mais le problème est le même. J'ai l'impression que ça ne traite pas toutes mes conditions.

          var_dump ($fonction);
            var_dump ($societe);  
          
            if ($societe == 30 && $fonction == 2 || $fonction == 17 || $fonction == 34)
            {
              $fonction = $result[0]['fonction'];
              $societe = $result[0]['societe'];
            }
            elseif ($societe == 30 && $fonction != 2 || $fonction != 17 || $fonction != 34)  
            {
              $fonction = 0;
            }
            elseif ($societe != 30 && $fonction == 2 || $fonction == 17 || $fonction == 34) 
            {
              $societe = 0;
            }
            elseif ($societe != 30 && $fonction != 2 || $fonction != 17 || $fonction != 34)
            {
              $fonction = 0;
              $societe = 0; 
            }
          
            var_dump ($fonction);
            var_dump ($societe);
          
          1. Merci pour vos aides, il est vrai que ma structure sur les conditions n'était pas la bonne.

            Merci beaucoup Jordane45 c'est exactement le résultat que je cherchais à obtenir et j'en étais assez loin... j'aurai dû rester dans la simplicité.