Kopion tämmösen scriptin PHP&MySQL 5 kirjasesta, mutta se ei oikein toimi...
<!---MAKSULASKIN ALKAA--->
<?php
function maksulaskin($maksu, $kkmaksu, $tase, $kkkorko)
{
$maksukorko=round($tase * $kkkorko,2);
$paamaksu=round($kkmaksu - $maksukorko,2);
$uusitase=round($tase - $paamaksu);
print "<tr>
<td>$maksu</td>
<td>\$".number_format($tase,2)."</td>
<td>\$".number_format($kkmaksu,2)."</td>
<td>\$".number_format($maksukorko,2)."</td>
<td>\$".number_format($paamaksu,2)."</td>
</tr>";
#Jos tase ei vielä ole 0, kutsu rekursiivisesti maksulaskin()
if ($uusitase > 100000)
{
$maksu++;
maksulaskin($maksu, $kkmaksu, $uusitase, $kkkorko);
}
else
{
exit;
}
} #maksulaskin() loppuu
?>
<!--- --->
<?php
#Muutamat alustavat muuttujat
#Tase
$tase=200000.00;
#Korkokanta
$korkotaso=.0999;
#Kuukausittainen korkokanta
$kkkorko=.0999 / 12;
#Maksuajan pituus vuosina
$maksuaika=30;
#Maksujen määrä vuodessa
$maksujavuodessa=12;
#Maksun toisto
$maksunro=1;
#Alustavat laskut
$maksujayht=$maksuaika * $maksujavuodessa;
$yhtlasku= 1 + $korkotaso / maksujavuodessa;
$kkmaksu=$tase * pow($yhtlasku,$maksujayht) * ($yhtlasku - 1) /
(pow($yhtlasku,$maksujayht) - 1);
$kkmaksu=round($kkmaksu,2);
#Taulun luonti
echo "<table width='50%' aling='center' border='2'>";
print "
<tr>
<th>Maksunumero</th>
<th>Tase</th>
<th>Maksu</th>
<th>Korko</th>
<th>Principal</th>
</tr>";
#Rekursiivisen function kutsu
maksulaskin($maksu, $kkmaksu, $tase, $kkkorko);
#Sulje taulu
print "</table>";
?>
<!---MAKSULASKIN LOPPUU--->Hyvinkin voi olla tossa koodissa jotain kirjotusvirheitä ;D
Kun yritän avata tuon sivun localhostissa, tulee suoraan ikkuna "Sivua ei voi näyttää"
Kun sitten painaa "edellinen", sivu tulee näkyviin n. 1s ja menee takas siihen "Sivua ei voi näyttää"-sivuun.
(Ei se oo oikein ees sillon kun se näkyy, menee väärinpäin laskut väärään kohtaan ku vertaa kirjan malliin)
Oon ite tarkasnut kyseisen scriptin n. 2 kertaa
Toimii tuo scripti. Ihmettelen kyllä tuota "ongelmaa"...
Mmm... Eipä toimi mulla :)
Tuo viittaisi siihen, että PHP:n tai palvelinsoftan asetuksissa on vikaa, eikä koodissa ole mitään ongelmaa.
Kun löysin kirjan mukana tulleesta CD:stä vastaavan koodin, se kyllä toimi:
<?php
function amortizationTable($paymentNum, $periodicPayment, $balance, $monthlyInterest) {
$paymentInterest = round($balance * $monthlyInterest,2);
$paymentPrincipal = round($periodicPayment - $paymentInterest,2);
$newBalance = round($balance - $paymentPrincipal,2);
print "<tr>
<td>$paymentNum</td>
<td>\$".number_format($balance,2)."</td>
<td>\$".number_format($periodicPayment,2)."</td>
<td>\$".number_format($paymentInterest,2)."</td>
<td>\$".number_format($paymentPrincipal,2)."</td>
</tr>";
# If balance not yet zero, recursively call amortizationTable()
if ($newBalance > 0) {
$paymentNum++;
amortizationTable($paymentNum, $periodicPayment, $newBalance, $monthlyInterest);
} else {
exit;
}
} #end amortizationTable()
?>
<?php
# Set some initial variables
# Loan balance
$balance = 200000.00;
# Loan interest rate
$interestRate = .0575;
# Monthly interest rate
$monthlyInterest = .0575 / 12;
# Term length of the loan, in years.
$termLength = 30;
# Number of payments per year.
$paymentsPerYear = 12;
# Payment iteration
$paymentNumber = 1;
# Perform preliminary calculations
$totalPayments = $termLength * $paymentsPerYear;
$intCalc = 1 + $interestRate / $paymentsPerYear;
$periodicPayment = $balance * pow($intCalc,$totalPayments) * ($intCalc - 1) /
(pow($intCalc,$totalPayments) - 1);
$periodicPayment = round($periodicPayment,2);
# Create table
echo "<table width='50%' align='center' border='1'>";
print "<tr>
<th>Payment Number</th><th>Balance</th>
<th>Payment</th><th>Interest</th><th>Principal</th>
</tr>";
# Call recursive function
amortizationTable($paymentNumber, $periodicPayment, $balance, $monthlyInterest);
# Close table
print "</table>";
?>Tossa koodissa kaikki jutut on englanniks, koska se on aivan ctrl+c ja ctrl+v
Muuten, ootteko kokeillut tuota edellistä koodia omassa selaimessa?
Dekooderi kirjoitti:
Muuten, ootteko kokeillut tuota edellistä koodia omassa selaimessa?
Ollaan kokeiltu tuota mukavaa looppia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.