[RESOLU] switch ko

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] switch ko

Re: switch ko

par nestor94 » 04 avr. 2021, 09:32

$aspect est bien présent en table pourtant...
Enfin, c'était bien une comparaison de chaines à effectuer pour que ce switch fonctionne correctement.
Merci pour la correction apportée.

Re: switch ko

par Ryle » 02 avr. 2021, 18:22

Si le var_dump ne retourne rien, c'est que ta variable $aspect est vide ou égale à false ou à 0... et il est alors normal que php exécute le premier case :)

Tu peux vérifier facilement que ton switch n'est pas en cause en mettant une valeur à 1 ou 2 en dur à ta variable au lieu de récupérer la valeur de $resultat['aspect'] et en regardant le comportement de ton script :)


A noter que : $resultat == '/images/HB.png'; compare les deux valeurs et c'est tout. C'est comme si tout ce que tu avais sur ta ligne était : "true;" ou "false;". Ça ne génère pas d'erreur, mais ça ne sert à rien ;)

A moins que ce que tu veuilles faire c'est comparer la valeur de $aspect à tes différentes chaines '/images/HB.png', '/images/HM.png' ??? Auquel cas, effectivement tu t'y prends mal et ce sont ces chaines qu'il faut utiliser comme valeurs de tes case :)
switch ($aspect){
   case '/images/HB.png' :
      header('Location:achat_HB.php'); 
      break;
   case '/images/HM.png' : 
      header('Location:achat_HM.php');
      break;
   case '/images/HN.png' : 
      header('Location:achat_HN.php');
      break;
   default:
      echo 'Ca merde un peu';
}
Quoi qu'il en soit, la première chose est quand même de vérifier ce que contient $aspect et pourquoi ;)

Re: switch ko

par nestor94 » 01 avr. 2021, 23:13

le var_dump ne retourne rien. C'est toujours la 1ere case du switch qui est éxecutée.

Re: switch ko

par or 1 » 01 avr. 2021, 21:57

que donne ?
var_dump($aspect);

switch ko

par nestor94 » 01 avr. 2021, 21:50

Bonjour,

Si quelqu'un peut m'aider, je suis preneur. J'ai un switch qui ne prend en compte QUE le 1er cas....
J'ai surement loupé quelque chose, mais je ne vois pas.

  $sql = "SELECT aspect FROM membres WHERE id = :id" ;
  $pdostat = $bdd->prepare($sql);
  $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
  $pdostat->execute();
  $resultat = $pdostat->fetch();
  if (!empty($resultat )) 
  { 
  $aspect = $resultat['aspect'];
 
            
            switch($aspect){
                case 0:
                    $resultat == '/images/HB.png';
					header('Location:achat_HB.php'); 
					
                    break;
                case 1:
                    ($resultat == '/images/HM.png');
					header('Location:achat_HM.php');
                    					
                    break;
                case 2:
                    ($resultat == '/images/HN.png');
					header('Location:achat_HN.php');
                    
					break;
                default:
                    echo 'Ca merde un peu';
            }
}
?>