Utilisation de plusieurs if [Résolu]

Signaler
-
 Dz -
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

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
3 562
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; 
    }
  }

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?
Messages postés
38544
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 juin 2021
1 979
Bonjour
je confirme ... je vois pas ce que fait ton truc ...
De plus, toutes tes conditions sont les mêmes ...
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);
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é.