Reputation: 2787
I'm having a little problem figuring out 'how' to print a 2nd variable within a loop. Basically, I'm trying to create a table that shows 'how many years' someone will save for retirement AND 'what their total savings' would be each year. I've never used a 'nested loop' before and I think this may be what I need to use.
I have the following code. It works by echoing the years saved as a loop, but I don't know what to do to echo the 'total savings' correctly. You'll notice that the first part of the number in "total savings" column is correct, but the variable is adding the previous value to the end of the number.
Thank you for your help!
The CODE I'm using is
<?php
//variables
$savings = $_POST["savings"];
$invested = $_POST["invested"];
$networth = $_POST["networth"];
$salary = $_POST["salary"];
$save_rate = $_POST["save_rate"];
$military = $_POST["military"];
$donate = $_POST["donate"];
$goods = $_POST["goods"];
$years_save = $_POST["years_save"];
//savings calculator
$annual_savings = $salary*$save_rate;
$total_savings = $savings + ($annual_savings*$years_save);
?>
</head>
<body>
<h1>Test Handler</h1><hr />
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Years</td>
<td width="450">Yearly Savings</td>
<td width="200">Total Savings </td>
</tr>
<?php
for ( $i=1; $i<=$years_save; $i++ ) {
echo "<tr>
<td>$i</td>
<td>$annual_savings</td>
<td>" . $totalsavings = $i*$annual_savings . "$totalsavings</td>
</tr>";
}
?>
</table>
Output is
Years Yearly Savings Total Savings
1 13500 13500
2 13500 2700013500
3 13500 405002700013500
4 13500 54000405002700013500
5 13500 6750054000405002700013500
6 13500 810006750054000405002700013500
7 13500 94500810006750054000405002700013500
8 13500 10800094500810006750054000405002700013500
9 13500 12150010800094500810006750054000405002700013500
10 13500 13500012150010800094500810006750054000405002700013500
11 13500 14850013500012150010800094500810006750054000405002700013500
12 13500 16200014850013500012150010800094500810006750054000405002700013500
Upvotes: 0
Views: 128
Reputation: 72865
Here's a very basic loop; it doesn't use all of your form values, but it's simplified and should help you implement what you're looking for. You could also do some additional math inside the loop:
$rate = 0.6;
$salary = 50000;
$years = 12;
$savings = 13500;
$base = $salary;
echo "<table>";
for ($i = 0; $i < $years; $i++)
{
// do some basic math; calculate this however you like
// += will add the math result to $base, leaving $salary available for additional calculations
$base += $savings * $rate;
echo "<tr><td>Years: $i</td><td>Savings: $base</td></tr>";
}
echo "</table>";
Upvotes: 0
Reputation: 190
Try to make it like this:
<?php
for ( $i=1; $i<=$years_save; $i++ ) {
$totalsavings = $i*$annual_savings;
echo "<tr>
<td>$i</td>
<td>$annual_savings</td>
<td>$totalsavings</td>
</tr>";
}
?>
Upvotes: 2