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. 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é.
    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. 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
          je confirme ... je vois pas ce que fait ton truc ...
          De plus, toutes tes conditions sont les mêmes ...
          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?