IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

"If" ne marche pas


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 39
    Points
    39
    Par défaut "If" ne marche pas
    bonjour, j'ai un petit soucis curieux J'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(isset($_POST['poids_day_moins_0'])&&$_POST['poids_day_moins_0']>0&&$_POST['poids_day_moins_0']<1&&isset($_POST['poids_day_moins_1'])&&$_POST['poids_day_moins_1']>0&&$_POST['poids_day_moins_1']<1&&isset($_POST['poids_day_moins_2'])&&$_POST['poids_day_moins_2']>0&&$_POST['poids_day_moins_2']<1){
    		$poids_day_moins_0=securite_bdd(htmlentities($_POST['poids_day_moins_0']));
    		$poids_day_moins_1=securite_bdd(htmlentities($_POST['poids_day_moins_1']));
    		$poids_day_moins_2=securite_bdd(htmlentities($_POST['poids_day_moins_2']));
    		$somme_poids=$poids_day_moins_0+$poids_day_moins_1+$poids_day_moins_2;
     
    		if($somme_poids!='1'){
    			$erreur_poids=$erreur_poids.$somme_poids.'La somme des poids ne fait pas 1';
    		}
    		else{blablablabla etc.
     
    		}
    	}
    Lorsque je met des valeurs comme 0.6, 0.3 ou 0.1 pour les trois poids, leur somme fait bien 1, la valeur de $somme_poids retourné est bien un, mais ca passe pas dans le if, en gros, pour le if, c'est comme si c'etait pas égal a 1

    Avez vous une idée sur ce petit bug?

    Merci d'avance pour votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    salut, pour que ça rentre dans ton if , il faut que le résultat soit different de 1 non???

    Il faudrait plutot $somme_poids=='1'.
    Enfin j'suis pas un spécialiste.

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par camcam8782 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		if($somme_poids!='1'){
    			$erreur_poids=$erreur_poids.$somme_poids.'La somme des poids ne fait pas 1';
    		}
    pourquoi "$erreur_poids = $erreur_poids.$somme_poids.'La somme des poids ne fait pas 1';" et pas "$erreur_poids = $somme_poids.' La somme des poids ne fait pas 1';"


    ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $poids_day_moins_0=0.2;
    $poids_day_moins_1=0.6;
    $poids_day_moins_2=0.2;
    $somme_poids=$poids_day_moins_0+$poids_day_moins_1+$poids_day_moins_2;
     
     
    if($somme_poids!='1'){
    	$erreur_poids= $somme_poids.' La somme des poids ne fait pas 1';
    	echo $erreur_poids;
    }
    else{
    	echo 'ok';
    }
    m'affiche bien "ok" et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $poids_day_moins_0=0.2;
    $poids_day_moins_1=0.4;
    $poids_day_moins_2=0.2;
    $somme_poids=$poids_day_moins_0+$poids_day_moins_1+$poids_day_moins_2;
     
     
    if($somme_poids!='1'){
    	$erreur_poids= $somme_poids.' La somme des poids ne fait pas 1';
    	echo $erreur_poids;
    }
    else{
    	echo 'ok';
    }
    m'affiche bien l'erreur...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 39
    Points
    39
    Par défaut
    effectivement, votre exemple semble bien marcher mais le soucis ici, c'est plutot le format des poids une fois passé en valeur POST, car le resultat de la somme donne bien 1 mais ca ne semble pas plaire au if...

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut
    Vire les quotes autour de 1 car comme si tu le compares avec un String.
    ou
    Je comprend pas bien ton besoin.

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    exacte, j'avais remarqué le quote mais oublié de le viré dans mon post

    Après généralement (de mon point de vue) quand tu développe et tu pose des condition, je cherche à trouver l'affirmation et non pas la contradiction (sauf cas précis)

    donc en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $somme_poids == 1 )
    parce que la, si ta somme = 1 il te renvoi que ta somme ne fait pas 1???

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 39
    Points
    39
    Par défaut
    alors apres plusieurs essai, je me retrouve dans la situation suivante:
    ce code commet une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $somme_poids=0.6+0.3+0.1;
    		if($somme_poids!=1){
    			$erreur_poids=$erreur_poids.'ERREUR: La somme des poids ne fait pas 1'.$poids_day_moins_0.$poids_day_moins_1.$poids_day_moins_2;
    		}
    		else{
    mais celui ci marche bien (a savoir qu'il reconnait que la somme est bien egale a 1) juste en changeant l'odre de la somme!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $somme_poids=0.6+0.1+0.3;
    		if($somme_poids!=1){
    			$erreur_poids=$erreur_poids.'ERREUR: La somme des poids ne fait pas 1'.$poids_day_moins_0.$poids_day_moins_1.$poids_day_moins_2;
    		}
    		else{
    Ca fait pareil pour vous?

    Merci bcp!

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo