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 :

Un probleme de debutant


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Un probleme de debutant
    Bonjour,

    Je suis debutant en PHP et j'ai quelques difficultés a comprendre quel est le probleme dans mon code. J'aimerais donc calculer, a la fin, le prix total avec une promotion qui depend du nombre de pneu acheté. Quand je fais le test du code sur un navigateur Internet, le prix total ($totalamout) ne change pas apres avoir calculer l'ajout des taxes.

    Est-ce une erreur de placement des deux dernieres lignes de code ? Y'a t-il un probleme au niveau de la promotion ($discount)?

    Voici ce que le navigateur Internet me renvoie:

    Items ordered: 112
    Subtotal: $610.00
    Total including tax: $671.00
    The total amount with your discount is $671.00
    Le dernier prix devant etre different de l'avant dernier vu la promotion...

    Que dois-je faire pour que le dernier prix soit correcte (avec promotion)?

    Merci !

    PS: J'apprend a partir d'un livre ecrit anglais et non sur ce site et desolé pour la mise en forme, je n'ai pas encore l'habitude.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";
     
    	echo "<p>Your order is as follows: </p>";
     
    	$totalqty = 0;
    	$totalqty = $tireqty + $oilqty + $sparkqty;
     
    	if ($totalqty < 1)	{
    		echo '<p style="color:red">';
    		echo "Please order at least one item from the list!</br>";
    		echo '</p>';
    	} else {
     
    	echo "Items ordered: ".$totalqty."<br />";
     
    	$totalamount = 0.00;
     
    	define('TIREPRICE', 100);
    	define('OILPRICE', 10);
    	define('SPARKPRICE', 4);
     
    	$totalamount = $tireqty * TIREPRICE
    				 + $oilqty * OILPRICE
    				 + $sparkqty * SPARKPRICE;
     
    	echo "Subtotal: $".number_format($totalamount,2)."<br />";
     
    	$taxrate = 0.10;  // local sales tax is 10%
    	$totalamount = $totalamount * (1 + $taxrate);
    	echo "Total including tax: $".number_format($totalamount,2)."<br />";
    	}
     
    	if ($tireqty < 10) {
    		$discount = 0; // No discount
    	} elseif (($tireqty >= 11) && ($tireqty <= 49)) {
    		$discount = 0.05; // Discount of 5%
    	} elseif (($tireqty >= 50) && ($tireqty <= 99)) {
    		$discount = 0.10; // Discount of 10%
    	} elseif ($tireqty >= 100) {
    		$discount = 0.15; // Discout of 15%
    	}
    	$totalamount = $totalamount * (1 - $discount);
    	echo "The total amount with your discount is $".number_format($totalamount,2)."<br />";

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bonjour Timur,

    A priori ton code fonctionne plutot bien, par contre, je remarque que ton totalamount fait $610, or pour avoir un discount, il faut acheter au moins 10 pneus, or le cout de dix pneus selon ton code est 10*100 = $1000.

    J'en conclus donc que l'achat n'est pas composé de pneus, mais d'OIL ou de SPARK, d'ou l'innexistance de discount.

    As-tu vérifié que ton achat comportait bien au moins 10 pneus?
    (Selon ton code, on a un discount lorque l'on achete 10 pneus, ici le client achete bien 112 items mais moins de dix pneux =) sinon le prix serait supérieur a 610 d'ou l'origine du probleme)

    PS : tu peux faire un petit echo $tireqty avant ta derniere ligne
    echo "The total amount with your discount is $".number_format($tot(...)
    pour verifier

    Cordialement,

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je me sens totalement bete... Il faudrait que je commence a faire marcher mes neurones !

    Donc, oui mon code fonctionne bien.

    Order processed at 19:50, 12th July 2011

    Your order is as follows:

    Items ordered: 14
    Subtotal: $1,214.00
    Total including tax: $1,335.40
    The total amount with your discount is $1,268.63
    Pouvez-vous me dire si la mise en forme du code est bonne ? Devrais-je prendre en compte certaines regles?

    Merci eurekgeez !

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Ton code est correct, juste 2 choses:
    _rajouter des commentaire (plus il y en a mieux c'est)
    _la structure des if (enfin ça c'est perso):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (condition)
    {
      code;
    }
    else if (autrecondition)
    {
      autrecode;
    }
    j'ai appris à coder de cette manière et je la trouve plus lisible que de mettre tout sur 2 lignes.

    Autre petit détail lorsque ton if ne comporte qu'une seul instruction tu n'as pas besoin des accolade:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (condition)
     uneseuleinstruction;
    reviens au même que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (condition)
    {
      uneseuleinstruction;
    }

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Il est vrai que c'est plus lisible de votre facon.

    Merci de votre aide, Skeud !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS] probleme de debutant
    Par discogarden dans le forum Mise en page CSS
    Réponses: 21
    Dernier message: 21/12/2005, 16h54
  2. Probleme inconnu... [debutant]
    Par The_Zarabe dans le forum C
    Réponses: 8
    Dernier message: 27/10/2005, 20h31
  3. quelques problemes de debutant avec count
    Par shirya dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/09/2005, 23h14
  4. probleme de debutant sous access
    Par guili dans le forum Access
    Réponses: 8
    Dernier message: 23/06/2005, 17h39
  5. Problème pour debuter avec glut
    Par ismael14 dans le forum GLUT
    Réponses: 2
    Dernier message: 26/07/2004, 11h37

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