Impossible d'exécuter une fonction php
jamal
-
jamal -
jamal -
Bonjour,
j'arrive pas à exécuter cette fonction qui appelle une autre fonction
merci de votre aide.
j'arrive pas à exécuter cette fonction qui appelle une autre fonction
merci de votre aide.
$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)
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Impossible d'exécuter une fonction php
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Expert php pinterest - Télécharger - Langages
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
Bonjour*
"j'arrive pas": message d'erreur, comportement inattendu?
"j'arrive pas": message d'erreur, comportement inattendu?
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
es-tu que ceci se comporte bien?
moi j'y ajouterais (dans la boucle)
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);
moi j'y ajouterais (dans la boucle)
echo $pmt, $GuessPMT, $GuessHigh, $GuessMiddle, $GuessLow;
<p><input type="submit" name="reset" value="reset" > <input type="submit" name="button9" value ="Payment Schedule" ></p>
</form>
<?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>j'ai essayé d'exécuter par Ajax mais je sais pas comment faire.
je ne comprend pas pourquoi.