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. 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. 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. 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é.