if ... elseif ... else

Invité
Invité n'ayant pas de compte PHPfrance

16 oct. 2007, 16:34

Bonjour a vous tous,
Désolé pour le titre du post... mais je ne savais pas quoi marquer par rapport à mon problème.

Voilà j'ai une table "produits" dans laquelle il peut y avoir 3 prix différents suivant une quantité commandée.

Par exemple : Le produit "XXX001",
Lorsque l'on en commande 1 produit XXX001 : il coute 0.75€ à l'unité. (soit 0.75 X 1)
Mais à partir de 100 produits commandés ce même produit vaut : 0.60€ à l'unité. (soit 0.60 X 100)
Et si on en commande 200 (ou plus) il vaut : 0.50€ à l'unité. (soit 0.50 X 200 ou plus)

Certains peuvent avoir 3 prix différents, d'autres 2 et encore d'autres un seul prix.

Alors j'ai fait ce petit script :
// $CIQ = quantité commandée
if (($qtt3!='') AND ($CIQ>=$qtt3)){$prix=$prix3;}	
elseif (($qtt2!='') AND ($CIQ>=$qtt2) AND ($CIQ<$qtt3)){$prix=$prix2;}	
else {$prix=$prix1;}
// $prix = prix final à afficher et à gérer.
Lorsqu'il y a 3 prix différents dans la table ... ce script fonctionne très bien... mais si il y en a que 2... il ne fonctionne plus !?

Ou est le prblème ?
Je l'ai trituré dans tous les sens... sans résultat.
Merci de votre aide.

Django.

d0m
Mammouth du PHP | 1141 Messages

16 oct. 2007, 16:46

tout dépend de comment tu initialises tes variables :
$prix1
$prix2
$prix3
$qtt2
$qtt3

Eléphant du PHP | 443 Messages

16 oct. 2007, 16:47

Salut,

A ta place dans la seconde condition je supprimerai AND ($CIQ<$qtt3).
// $CIQ = quantité commandée
if (!empty($qtt3) AND ($CIQ>=$qtt3))
  { $prix=$prix3; }	
elseif (!empty($qtt2) AND ($CIQ>=$qtt2)) 
  { $prix=$prix2; }
else 
  {$prix=$prix1; }
// $prix = prix final à afficher et à gérer.
[edit]
Comme le fait remarquer d0m, fais attention à l'initialisation de tes variables.

Tracker.

Invité
Invité n'ayant pas de compte PHPfrance

16 oct. 2007, 16:51

Merci d0m de ta réoponse.

Mes variables sont récupérées dans la table.
en gros :
$prix1 = $enr['10'];
$prix2 = $enr['12'];
$prix3 = $enr['14'];
$qtt2 = $enr['11'];
$qtt3 = $enr['13'];
Etait-ce bien la ta question !?

Invité
Invité n'ayant pas de compte PHPfrance

16 oct. 2007, 16:53

Tracker merci de ta réponse.

Il semblerai que ce soit cela... Je vais faire plusieurs tests

mais je ne vois pas pourquoi ?

Invité
Invité n'ayant pas de compte PHPfrance

16 oct. 2007, 16:58

Oui merci à vous deux.

C'était bien ce : "AND ($CIQ<$qtt3)" qui ne fonctionnait pas.

Je l'ai testé sur plusieurs produits et tout est rentré dans l'ordre... Merci


Par contre je ne vois toujours pas pourquoi ... !?

Django

Comment fait-on pour mettre "Résolu" ?

Eléphant du PHP | 443 Messages

16 oct. 2007, 17:08

Oui merci à vous deux.

C'était bien ce : "AND ($CIQ<$qtt3)" qui ne fonctionnait pas.

Je l'ai testé sur plusieurs produits et tout est rentré dans l'ordre... Merci


Par contre je ne vois toujours pas pourquoi ... !?

Django

Comment fait-on pour mettre "Résolu" ?
Si $qtt3 n'est pas définie, tu passes à la seconde clause dans laquelle tu testes si $qtt2 est définie:
$CIQ<$qtt3, la comparaison texte ou numérique (''==0) abouti toujours à false.

donc ton $prix est toujours égal à $prix1, si $qtt3 n'est pas définie.

Tracker.

[edit]
je pense, qu'en invité, tu ne peux plus modifier ton message.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 oct. 2007, 17:37

Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
je pense, qu'en invité, tu ne peux plus modifier ton message.
En effet mais il n'y a pas besoin d'éditer un message juste cliquer sur le bouton :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

17 oct. 2007, 10:14

Merci pour vos explications.

Django