Hallo hier,

ik heb een opdracht voor school gekregen om een script te maken die het volgende kan:

Schrijf een programma dat als invoer kent een geleend bedrag, een rentepercentage en een looptijd. Het geleende bedrag wordt in het gelijke termijnen van de looptijd afgelost. Als afdrukt verschijnt op het scherm de jaarlijkse rentebetaling en de restschuld.

dit heb ik nu:
maar het werkt niet naar behoren!


	<?php
	if (!empty($_POST["submit"]))
		{
		$leen =  $_POST["leen"];	
		$rent =  $_POST["rent"];		
		$loop =  $_POST["loop"];
		$leent=  0;
		$rente = ($leen / 100) * $rent;
		for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente ) 
			{			
			echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
			}
		echo "<a href=\"leen.php\">nog een berekening</a>";
		}	
	else
		{
	?>
	<html>
	<head>
	<title>Lenen</title>
	</head>
	<body>
	<form name="form1" method="post" action="leen.php">
	<table>
	<tr><td>Het bedrag dat u wilt lenen:</td><td><input name="leen" ></td></tr>
	<tr><td>Rentepercentage:</td><td><input name="rent" ></td></tr>
	<tr><td>Looptijd in jaren:</td><td><input name="loop" ></td></tr>
	<tr><td></td><td><input type="submit" name="submit" value="verzenden">
	<input type="reset" name="reset" value="reset"></td></tr>
	</form>
	<?php
	}
	?>
	</body>
	</html>


ik krijg geen resultaten,
wat doe ik fout?

Mvg,
Jan
Theodoor van Donge op 29/09/2010 22:40:36

Wat nog mooier is dit:

<?php
if(strtoupper($_SERVER['REQUEST_METHOD']) == 'POST')
?>



Nee, slaat nergens op en is hartstikke onzin.
REQUEST_METHOD'S INHOUD IS ALTIJD IN HOOFDLETTERS, JUIST NOOIT IN KLEINE LETTERS.
Oke, dan laat je het gewoon zo:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
?>


Ik dacht dat, dat beter was. Maar als de pro's zeggen van niet, dan kun je daar beter naar luisteren.
Ik vind het vaag dat je in het eerste "gedeelte" van je for een && gebruikt...
Jaap V op 29/09/2010 18:52:14

zo al beter?

<?php
	$_SERVER['REQUEST_METHOD']
		{
		$leen =  $_POST["leen"];	
		$rent =  $_POST["rent"];		
		$loop =  $_POST["loop"];
		$rente = ($leen / 100) * $rent;
		for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente ) 
			{			
			echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
			}
		echo "<a href=\"leen.php\">nog een berekening</a>";
		}	
	else
		{
	?>


de berekeningen horen toch tussen de () haakjes en niet tussen de {} of zit ik nu fout?

wat voor controle? en validatie?


Waar haal je eigenlijk $leent vandaan?
Goed dat eindelijk iemand eens intelligent gebruik maakt van for, je doet het allen net fout.

for( setup1, setup2, setupN; $conditie; ophoging1, ophoging2, ophogingN )

Jouw for wordt dan:
for ($teller = 1, $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++, $leent - $rente)

Het resultaat is hetzelfde, net is het niet.

Let verder goed op de volgorde

Testscript:
<?php
for(print('instantiate'.PHP_EOL), $i = 0; print('test, i = '.$i.PHP_EOL) && $i <= 10; $i++, print('increment i to '.$i.PHP_EOL)) { print ('action, i = '.$i.PHP_EOL);}
?>

Geeft (als het goed is)

instantiate
test, i = 0
Action, i = 0
increment i to 1
test, i = 1
action i = 1
increment i to 2

etc
ik ben er echt nog altijd niet uit:
heb nu de volgende for loop:


	<?php
	if (!empty($_POST["submit"]))
		{
		$leen 	=  $_POST["leen"];	
		$rent 	=  $_POST["rent"];		
		$loop 	=  $_POST["loop"];
		$rente 	= ($leen / 100) * $rent;
		$schuld	=  $leen / $loop ;		
		for ($teller=1 ; $teller <= $loop; $teller++)
			{
			$geleend = ($leen + $rente) - $schuld ;
			echo $geleend . "<br/>";
			}
		echo "<a href=\"leen.php\">nog een berekening</a>";
		}	
	else
		{
		?>
Misschien moet je eerst eens de wiskunde erachter verzinnen?
Maakt je leven zo ontzettend veel simpeler.
Zet dit bovenin je script.
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>

Reageren