I am building a student-following system where instructors can post the results for the different demands per diploma in SQL. Then, the parents are able to view those results.
In this code the parents can see the results. The $kindid is filled in when they open the page.
The code works like a charm, exept for one thing. Every time the loop is repeated, it echo's the results from the previous loop(s) first, and then the new ones. (See picture)
The first two loops are displayed here, in the field "Opmerking" you can see, the first two results in the second loop are the same as in the first loop.
How do I fix this?
I tried resetting the pointer (How do I reset a PHP pointer for a MySQL resource?), didn't do anything. Also, I tried resetting $row at the beginning of every loop, didn't do anything.
Code:
<?
$diplomanumber = 0; //Start at diploma number 0
$i = 0;
$times_to_run = 7; //Amount diplomas
$array = array();
while ($i++ < $times_to_run)
{
$query = "SELECT * FROM Leerlingvolgsysteem WHERE kindid='$kind_id' AND diploma='$diplomanumber' ORDER BY datum DESC;";
$result = mysqli_query($connection,$query);
if(mysqli_num_rows($result) == 0){
$diplomanumber++; //No results, skip to next loop
}
else {
echo'<h2 id="'.$diplomanumber.'">'; //Echo diploma name
if($diplomanumber == 0){echo'Spetter Ready';}
elseif($diplomanumber == 1){echo'Spetter 1';}
elseif($diplomanumber == 2){echo'Spetter 2';}
elseif($diplomanumber == 3){echo'Spetter 3';}
elseif($diplomanumber == 4){echo'Diploma A';}
elseif($diplomanumber == 5){echo'Diploma B';}
elseif($diplomanumber == 6){echo'Diploma C';}
echo'</h2>';
while ($row = mysqli_fetch_assoc($result))
{
$phpdate = strtotime($row['datum']);
$date = date( 'd-m-Y', $phpdate ); //Put date in European format
$datum .= '<td><b>'.$date.'</b></td>'; //Define all <td></td> which are looped
$eis1 .= '<td class="'.$row['eis1'].'">'.$row['eis1'].'</td>';
$eis2 .= '<td class="'.$row['eis2'].'">'.$row['eis2'].'</td>';
$eis3 .= '<td class="'.$row['eis3'].'">'.$row['eis3'].'</td>';
$eis4 .= '<td class="'.$row['eis4'].'">'.$row['eis4'].'</td>';
$eis5 .= '<td class="'.$row['eis5'].'">'.$row['eis5'].'</td>';
$eis6 .= '<td class="'.$row['eis6'].'">'.$row['eis6'].'</td>';
$eis7 .= '<td class="'.$row['eis7'].'">'.$row['eis7'].'</td>';
$eis8 .= '<td class="'.$row['eis8'].'">'.$row['eis8'].'</td>';
$eis9 .= '<td class="'.$row['eis9'].'">'.$row['eis9'].'</td>';
$eis10 .= '<td class="'.$row['eis10'].'">'.$row['eis10'].'</td>';
$eis11 .= '<td class="'.$row['eis11'].'">'.$row['eis11'].'</td>';
$eis12 .= '<td class="'.$row['eis12'].'">'.$row['eis12'].'</td>';
if(!empty($row['opm'])) {
$opm .= '<td style="white-space: normal;"><b>'.$row['opm'].'</b></td>';
}
else{
$opm .= '<td style="white-space: normal;"> </td>'; // No $opm.
}
if(!empty($row['instructeur'])) {
$inst .= '<td style="white-space: normal;"><b>'.$row['instructeur'].'</b></td>';
}
else{
$inst .= '<td style="white-space: normal;"> </td>'; // No $inst
}
}
echo '
<div class="volgsysteem"><table class="table table-condensed table-bordered neutralize volgsysteem">
<tbody>'; //Start table with a div and tbody
$query2 = "SELECT * FROM Leerlingvolgsysteem_eisen WHERE diploma='$diplomanumber' ORDER BY nr;"; //Query to select all demands
$result2 = mysqli_query($connection,$query2);
if(mysqli_num_rows($result2) == 0){
$diplomanumber++; echo 'Er is een fout opgetreden, waardoor de eisen voor dit diploma niet aan uw kind gekoppeld kunnen worden.</br>';}
else {
echo'
<tr><th class="headcol"><b>Datum:</b></th>'.$datum.'</tr>';
echo '<th class="headcol"><b>Instructeur</b></th>'.$inst.'</tr>';
$counter = 0;
while ($row2 = mysqli_fetch_assoc($result2))
{
$counter++; // counter + 1
echo '
<tr><th class="headcol">';
echo substr($row2['eis'],0,15); // shorten demand
echo '...';
$verandernaameisnr = 'eis' . $counter; // change number of the demand
$eis = $$verandernaameisnr;
echo '</th>'.$eis.''; // echo demand
echo' </tr>';
}
echo "<th class='headcol'><b>Opmerking</b></th>";
echo ''.$opm.'';
echo' </tr>';
$diplomanumber++; // Diplomanumber +1
}
echo'</tbody>'; //End table
echo '</table></div> ';
}
}
?>