Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Miksi scripti ei toimi?

Dekooderi [14.03.2006 19:15:28]

#

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

str4nd [14.03.2006 19:44:29]

#

Toimii tuo scripti. Ihmettelen kyllä tuota "ongelmaa"...

Dekooderi [14.03.2006 20:26:35]

#

Mmm... Eipä toimi mulla :)

Merri [14.03.2006 20:34:30]

#

Tuo viittaisi siihen, että PHP:n tai palvelinsoftan asetuksissa on vikaa, eikä koodissa ole mitään ongelmaa.

Dekooderi [14.03.2006 20:42:02]

#

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?

str4nd [15.03.2006 07:12:51]

#

Dekooderi kirjoitti:

Muuten, ootteko kokeillut tuota edellistä koodia omassa selaimessa?

Ollaan kokeiltu tuota mukavaa looppia.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta