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 :

exécuter une fonction PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    FINANCIER
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Maroc

    Informations professionnelles :
    Activité : FINANCIER

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Par défaut exécuter une fonction PHP
    Bonjour;

    je vous prie pour votre aide, j'arrive pas à exécuter la fonction suivante, ci-dessous le code;

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    <?php
     
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "payment";
     
    $link=mysqli_connect($servername,$username,$password,$dbname);
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
      if (isset($_POST['button9'])) {
     
      $query = "SELECT * FROM Contrat Limit 1";
     
      if ($result = mysqli_query($link, $query)) {
     
            while ($row = mysqli_fetch_assoc($result)) {
             $a= $row["PrixHT"];
             $b=$row["Duree"];
             $c=$row["VR"];
             $d=$row["Redevance"];
          ECHO calc_rate($a,$b,$c,$d);
        }
        /* Libération des résultats */
        mysqli_free_result($result); 
    }
    }
    /* Fermeture de la connexion */
    mysqli_close($link); 
     
     
     
     
     
    function calc_rate($pv, $payno,$RV, $pmt)
    {
    // check that required values have been supplied
    if (empty($pv)) {
       echo "<p class='error'>a value for PRINCIPAL is required</p>";
       exit;
    } // if
    if (empty($payno)) {
       echo "<p class='error'>a value for NUMBER of PAYMENTS is required</p>";
       exit;
    } // if
    if (empty($pmt)) {
       echo "<p class='error'>a value for PAYMENT is required</p>";
       exit;
    } // if
    if (($RV<0)) {
       echo "<p class='error'>RV must be > 0 </p>";
       exit;
    } 
     
    // now try and guess the value using the binary chop technique
    $GuessHigh   = (float)100;    // maximum value
    $GuessMiddle = (float)2.5;    // first guess
    $GuessLow    = (float)0;      // minimum value
    $GuessPMT    = (float)0;      // result of test calculation
     
    do {
       // use current value for GuessMiddle as the interest rate,
       // and set level of accurracy to 6 decimal places
       $GuessPMT = (float)calc_payment($pv, $payno, $GuessMiddle,$RV, 6);
     
       if ($GuessPMT > $pmt) {    // guess is too high
          $GuessHigh   = $GuessMiddle;
          $GuessMiddle = $GuessMiddle + $GuessLow;
          $GuessMiddle = $GuessMiddle / 2;
       } // if
     
       if ($GuessPMT < $pmt) {    // guess is too low
          $GuessLow    = $GuessMiddle;
          $GuessMiddle = $GuessMiddle + $GuessHigh;
          $GuessMiddle = $GuessMiddle / 2;
       } // if
     
       if ($GuessMiddle == $GuessHigh) break;
       if ($GuessMiddle == $GuessLow) break;
     
       $int = number_format($GuessMiddle, 9, ".", "");    // round it to 9 decimal places
       if ($int == 0) {
          echo "<p class='error'>Interest rate has reached zero - calculation error</p>";
          exit;
       } // if
     
    } while ($GuessPMT !== $pmt);
     
    return $int;
     
    } // calc_rate =======================================================================
     
     
    function calc_payment($pv, $payno, $int,$RV, $accuracy)
    {
    // check that required values have been supplied
    if (empty($pv)) {
       echo "<p class='error'>a value for PRINCIPAL is required</p>";
       exit;
    } // if
    if (empty($payno)) {
       echo "<p class='error'>a value for NUMBER of PAYMENTS is required</p>";
       exit;
    } // if
    if (empty($int)) {
       echo "<p class='error'>a value for INTEREST RATE is required</p>";
       exit;
    } // if
    if (($RV<0)) {
       echo "<p class='error'>RV must be > 0 </p>";
       exit;
    } 
    // now do the calculation using this formula:
     
    //******************************************
    //            INT * ((1 + INT) ** PAYNO)
    // PMT = PV * --------------------------
    //             ((1 + INT) ** PAYNO) - 1
    //******************************************
    $RV=$RV/pow((1+($int/100)),$payno);
    $int    = $int / 100;    // convert to a percentage
    $value1 = $int * pow((1 + $int), $payno);
    $value2 = pow((1 + $int), $payno) - 1;
    $pmt    = ($pv-$RV) * ($value1 / $value2);
    // $accuracy specifies the number of decimal places required in the result
    $pmt    = number_format($pmt, $accuracy, ".", "");
     
    return $pmt;
     
    } // calc_payment ====================================================================
    ?>
     
    </div>
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    ligne 25
    remplace ECHO calc_rate($a,$b,$c,$d); par calc_rate($a,$b,$c,$d);
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre habitué
    Homme Profil pro
    FINANCIER
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Maroc

    Informations professionnelles :
    Activité : FINANCIER

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Par défaut
    MERCI ça marche pas!!!

  4. #4
    Membre habitué
    Homme Profil pro
    FINANCIER
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Maroc

    Informations professionnelles :
    Activité : FINANCIER

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Par défaut
    comment faire pour lancer cette fonction par Ajax.

  5. #5
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Hello,

    tu n'y arrives pas, c'est à dire ? Tu as des erreurs ? Quel partie de ton code pose problème ?

    Soit un peu plus précis dans ta demande.

  6. #6
    Membre habitué
    Homme Profil pro
    FINANCIER
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Maroc

    Informations professionnelles :
    Activité : FINANCIER

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Par défaut
    La partie qui pose problème est la fonction calc_rate, les calculs se lancent mais sans aucun retour.

    ( ! ) Fatal error: Maximum execution time of 120 seconds exceeded in C:\wamp\www\amortization\Controle.php on line 144
    Call Stack
    # Time Memory Function Location
    1 0.0360 143912 {main}( ) ...\Controle.php:0
    2 0.5060 156624 calc_rate( ) ...\Controle.php:44
    3 119.9990 156864 calc_payment( ) ...\Controle.php:85

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

Discussions similaires

  1. [MySQL] Exécuter une fonction PHP au clique sur un bouton
    Par Valadone dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/09/2015, 18h44
  2. Réponses: 1
    Dernier message: 25/10/2009, 14h39
  3. Exécuter une fonction PHP via "onclick"
    Par noxia dans le forum Langage
    Réponses: 1
    Dernier message: 03/03/2009, 18h57
  4. Exécuter une fonction PHP
    Par Trebor_ dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/03/2008, 15h34
  5. Réponses: 41
    Dernier message: 27/08/2006, 16h17

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