Ich versuche, die Datensätze meiner Tabelle korrekt anzuzeigen. Das Problem, das ich gerade habe, ist, dass ich Aufzeichnungen wiederhole.Populating HTML-Tabelle mit PHP und Datenbankwerte
Ich verwende eine foreach und eine for-Schleife, um die Tabelle zu füllen. Das Problem tritt auf, wenn ich einen zweiten Foreach benutze, um auf mein 2D-Array zuzugreifen, um seine Werte zu erfassen und sie zu vergleichen. Die Datensätze werden so oft wiederholt, wie Arrays im Array 2d vorhanden sind. Ich weiß nicht genau wo ich meine foreach platzieren soll oder ob ich es in diesem Fall benutzen soll.
Es gibt nur 1 Taste sollte in für jede Zeile/Spalte Kombination wie ein normaler Tisch
Hier ist der Code
<table style="float: left;">
<thead>
<tr>
<?php for ($i = 0; $i < 7; $i++): ?>
<th>
<?php echo $dateArray[$i]; ?>
</th>
<?php endfor ?>
</tr>
</thead>
<tbody>
<?php foreach ($data['timeData'] as $timeTable): ?>
<tr>
<?php for ($i = 0; $i < 7; $i++): ?>
<td>
<?php foreach ($data['scheduleData'] as $scheduleData): ?> The problem lies here
<div class="btn-group" data-toggle="buttons">
<?php if (($scheduleData['time_id'] == $timeTable['time_id'] && $scheduleData['date'] == $dateArray[$i] && $scheduleData['status'] === '1')) { ?>
<label class="btn btn-success">
<input type="checkbox" id="<?= $timeTable['time_id']; ?>"
name="time[]" value="<?= $timeTable['time_id']; ?> "
autocomplete="off"><?= $timeTable['time_hour']; ?>
<input type="checkbox" hidden id="<?= $dateArray[$i]; ?>"
name="date[]" value="<?= $dateArray[$i]; ?>">
</label>
<?php } else { ?>
<label class="btn btn-primary">
<input type="checkbox" id="<?= $timeTable['time_id']; ?>"
name="time[]" value="<?= $timeTable['time_id']; ?> "
autocomplete="off"><?= $timeTable['time_hour']; ?>
<input type="checkbox" hidden id="<?= $dateArray[$i]; ?>"
name="date[]" value="<?= $dateArray[$i]; ?>">
</label>
<?php } ?>
</div>
<?php endforeach ?>
</td>
<?php endfor ?>
</tr>
<?php endforeach ?>
</tbody>
</table>
Dies ist, was die $data['scheduleData']
enthält:
Array ([0] => Array ([person_id] => 8
[time_id] => 1
[date] => 2017-05-08
[status] => 1)
[1] => Array ([person_id] => 8
[time_id] => 2
[date] => 2017-05-09
[status] => 1))
Mein $data['timeData']
enthält:
Array ([0] => Array ([time_id] => 1 [time_hour] => 00:00:00)
[1] => Array ([time_id] => 2 [time_hour] => 01:00:00)
[2] => Array ([time_id] => 3 [time_hour] => 02:00:00)
[3] => Array ([time_id] => 4 [time_hour] => 03:00:00)
[4] => Array ([time_id] => 5 [time_hour] => 04:00:00)
. .... .... .... ....
[23] => Array ([time_id] => 24 [time_hour] => 23:00:00))
My $ dateArray
$dateArray = array();
for ($i = 0; $i < 7; $i++) {
$dateArray[$i] = date("Y-m-d", strtotime("+$i day", strtotime(date("Y-m-d"))));
}
eines tun Aktie Eingabefelder die Schließung entfernen, die Sie haben und erwartete Ausgabe wollen Sie, damit wir Ihnen helfen können aus. –
Sie wollen also, dass ich Ihnen meine aktuelle Ausgabe und meine gewünschte Ausgabe gebe? – Viteazul
Ich möchte sagen, teilen Sie einfach die Arrays, auf denen Sie iterieren und Sie erwartet von diesen Array, –