Utilisation de plusieurs if

Résolu/Fermé
Dz - 4 mars 2021 à 15:09
 Dz - 4 mars 2021 à 15:54
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
4 mars 2021 à 15:39
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?
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
4 mars 2021 à 15:33
Bonjour
je confirme ... je vois pas ce que fait ton truc ...
De plus, toutes tes conditions sont les mêmes ...
0
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);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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é.
0