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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Règle de calcul compliquée


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Par défaut Règle de calcul compliquée
    Bonjours à tous,

    j'ai 2 champs html étage qui correspondent à ça :
    Code html : 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
     
    <label>Etage</label>
    <select name="etage" ><option value="0">RDC
    </option><option value="1">1
    </option><option value="2">2
    </option><option value="3">3
    </option><option value="4">4
    </option><option value="5">5
    </option><option value="6">6
    </option><option value="7">7
    </option><option value="8">8
    </option><option value="9">9
    </option><option value="10">10 et plus
    </option></select>
    sur
    <select name="suretage"><option value="1">1
    </option><option value="2">2
    </option><option value="3">3
    </option><option value="4">4
    </option><option value="5">5
    </option><option value="6">6
    </option><option value="7">7
    </option><option value="8">8
    </option><option value="9">9
    </option><option value="10">10 et plus
    </option></select>

    Je vais faire une règle javascript qui dit que dès que par exemple le champs étage = 1 le champ surétage =<1
    ok

    Maintenant faire la règle de calcul exemple :

    si étage = 1 et surétage = 6, prix au m² = 100
    si étage = 1/2ou 3/4de surétage à partir de 5 surétage ( cad par exemple 3 sur 6 ) prix au m² = 100 *(1+5/100) cad une augmentation de 5% donc 105
    et
    si étage = 5 et surétage = 5 (cad minimum 5 étage sur 5 surétage), prix au m² = 100 *(1+15/100) cad une augmentation de 15% donc ici 115

    Je réfléchis sur comment créer cette formule en php
    mais c'est pas gagné !

    Si quelqu'un à des notions de maths plus poussée que moi j'aimerai bien un coup de main

    Merci !

  2. #2
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,
    ta règle de calcul n'est pas complique, il faut jkuste mettre un peu d'organisation....
    Je te donne les grande ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    function calculPrixMetreCarre($PrixBase, $Etage, $SurEtage)
     
    switch($Etage){
     
       case $Etage>2 && $SurEtage>2  : $Taux=1.15;break; //correspond a 15%
     
       case .... :
    }
     
    $PrixFinal=$PrixBase*Taux;
    return $PrixFinal;
    }

    Guigo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Par défaut
    J'ai fait ça

    Code php : 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
     
    $PrixBase=$ligne['prix'];
    echo "PRIXXXX $PrixBase €";
     
    /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CALCUL DU TAUX SELON ETAGE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */		
    function calculPrixMetreCarre($PrixBase, $Etage, $SurEtage){
     
    switch($etage){
     
       case $etage<3 && $suretage>3  : $Taux=1;break; //correspond a 0%
       case $etage=3 && $suretage>5  : $Taux=1.05;break;//correspond a 5%
       case $etage=4 && $suretage=4  : $Taux=1.05;break;
       case $etage=4 && $suretage>7  : $Taux=1.05;break;
       case $etage=5 && $suretage>8  : $Taux=1.05;break;
       case $etage=5 && $suretage=5  : $Taux=1.15;break;//correspond a 15%
       case $etage=6 && $suretage>9  : $Taux=1.05;break;
       case $etage=6 && $suretage=6  : $Taux=1.15;break;
       case $etage=7 && $Suretage=7  : $Taux=1.15;break;
       case $etage=8 && $suretage=8  : $Taux=1.15;break;
       case $etage=9 && $suretage=9  : $Taux=1.15;break;
       case $etage=10 && $suretage=10  : $Taux=1.15;break;
    }
     
    $PrixFinal=$PrixBase*$Taux;
     
    function prixfinal($PrixBase,$Taux){
    return $PrixBase*$Taux;
    }}
     
    $PrixFinal1 =  prixfinal($PrixBase,$Taux);
    {echo "Prix Final $PrixFinal1 €";}

    et voila l'erreur

    Fatal error: Call to undefined function prixfinal()

    huhu !!

  4. #4
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    essaye ca :

    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
     
    $PrixBase=$ligne['prix'];
    $Etage=$ligne['Etage'];
    $SurEtage=$ligne['SurEtage'];
     
    echo "PRIXXXX ".calculPrixMetreCarre($PrixBase, $Etage, $SurEtage)." €";
     
    /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CALCUL DU TAUX SELON ETAGE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */		
    function calculPrixMetreCarre($PrixBase, $Etage, $SurEtage){
     
    switch($etage){
     
       case $etage<3 && $suretage>3  : $Taux=1;break; //correspond a 0%
       case $etage=3 && $suretage>5  : $Taux=1.05;break;//correspond a 5%
       case $etage=4 && $suretage=4  : $Taux=1.05;break;
       case $etage=4 && $suretage>7  : $Taux=1.05;break;
       case $etage=5 && $suretage>8  : $Taux=1.05;break;
       case $etage=5 && $suretage=5  : $Taux=1.15;break;//correspond a 15%
       case $etage=6 && $suretage>9  : $Taux=1.05;break;
       case $etage=6 && $suretage=6  : $Taux=1.15;break;
       case $etage=7 && $Suretage=7  : $Taux=1.15;break;
       case $etage=8 && $suretage=8  : $Taux=1.15;break;
       case $etage=9 && $suretage=9  : $Taux=1.15;break;
       case $etage=10 && $suretage=10  : $Taux=1.15;break;
    }
     
    $PrixFinal=$PrixBase*$Taux;
    return $PrixFinal; 
    }

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Citation Envoyé par Irokoi Voir le message
    J'ai fait ça

    Code php : 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
     
    $PrixBase=$ligne['prix'];
    echo "PRIXXXX $PrixBase €";
     
    /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CALCUL DU TAUX SELON ETAGE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */		
    function calculPrixMetreCarre($PrixBase, $Etage, $SurEtage){
     
    switch($etage){
     
       case $etage<3 && $suretage>3  : $Taux=1;break; //correspond a 0%
       case $etage=3 && $suretage>5  : $Taux=1.05;break;//correspond a 5%
       case $etage=4 && $suretage=4  : $Taux=1.05;break;
       case $etage=4 && $suretage>7  : $Taux=1.05;break;
       case $etage=5 && $suretage>8  : $Taux=1.05;break;
       case $etage=5 && $suretage=5  : $Taux=1.15;break;//correspond a 15%
       case $etage=6 && $suretage>9  : $Taux=1.05;break;
       case $etage=6 && $suretage=6  : $Taux=1.15;break;
       case $etage=7 && $Suretage=7  : $Taux=1.15;break;
       case $etage=8 && $suretage=8  : $Taux=1.15;break;
       case $etage=9 && $suretage=9  : $Taux=1.15;break;
       case $etage=10 && $suretage=10  : $Taux=1.15;break;
    }
     
    $PrixFinal=$PrixBase*$Taux;
     
    function prixfinal($PrixBase,$Taux){
    return $PrixBase*$Taux;
    }}
     
    $PrixFinal1 =  prixfinal($PrixBase,$Taux);
    {echo "Prix Final $PrixFinal1 €";}

    et voila l'erreur

    Fatal error: Call to undefined function prixfinal()

    huhu !!
    ta fonction prixfinal est déclarée à l'intérieur d'une autre fonction... il faut la sortir.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 57
    Par défaut
    Alors

    Code php : 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
     
    $PrixBase=$ligne['prix'];
    echo "PRIXXXX $PrixBase €";
     
    /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CALCUL DU TAUX SELON ETAGE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */		
    function calculPrixMetreCarre($PrixBase, $Etage, $SurEtage){
     
    switch($etage){
     
       case $etage<3 && $suretage>3  : $Taux=1;break; //correspond a 0%
       case $etage=3 && $suretage>5  : $Taux=1.05;break;//correspond a 5%
       case $etage=4 && $suretage=4  : $Taux=1.05;break;
       case $etage=4 && $suretage>7  : $Taux=1.05;break;
       case $etage=5 && $suretage>8  : $Taux=1.05;break;
       case $etage=5 && $suretage=5  : $Taux=1.15;break;//correspond a 15%
       case $etage=6 && $suretage>9  : $Taux=1.05;break;
       case $etage=6 && $suretage=6  : $Taux=1.15;break;
       case $etage=7 && $Suretage=7  : $Taux=1.15;break;
       case $etage=8 && $suretage=8  : $Taux=1.15;break;
       case $etage=9 && $suretage=9  : $Taux=1.15;break;
       case $etage=10 && $suretage=10  : $Taux=1.15;break;
    }
    }
    function prixfinal($PrixBase,$Taux){
    return $PrixBase*$Taux;
     
    }
    $PrixFinal =  prixfinal($PrixBase,$Taux);
    {echo "Prix Final $PrixFinal €";}

    Notice: Undefined variable: Taux

    je cherche encore j'ai fait différente combinaison mais ça me met différente erreur UNDEFINED

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    1- Tu as une belle fonction prixMetreCarre que tu n'appelles pas, et qui ne retourne rien... donc au moment ou tu appelles prixfinal avec $Taux, $Taux est inconnu.

    2- Ajoutes un "case default" dans ton switch() "au cas où" aucun des cas décrits ne serait validé.

    3- Les messages d'erreur sont on ne peut plus explicite (même sans être billingue), fais un ptit effort pour déterminer ce qui ne va pas... le numéro de ligne t'aidera à cibler ton erreur.

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

Discussions similaires

  1. Les règles de calcul
    Par bhami9 dans le forum Langage
    Réponses: 1
    Dernier message: 16/09/2010, 11h46
  2. rêgle de calcul booléen ?
    Par miltone dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 23/02/2008, 17h27
  3. interpretation d'une règle de calcul
    Par lodan dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2006, 16h45
  4. [Tableaux] interprêteur de règle de calcul
    Par lodan dans le forum Langage
    Réponses: 9
    Dernier message: 18/10/2006, 16h56
  5. Réponses: 7
    Dernier message: 21/03/2006, 13h01

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