我有一个带标题的表;周日,周一,周二,周三,周四,周五和周六。我已经从数据库中收集了用户的“班次” ...
<tr>
<th>Sunday</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
</tr>
<?php $sql4 = "SELECT * FROM shifts WHERE date = '" . $sunday . "' or date = '" . $monday . "'
or date = '" . $tuesday . "' or date = '" . $wednesday . "'
or date = '" . $thursday . "' or date = '" . $friday . "'
or date = '" . $saturday . "'";
$result1 = $database->query($sql4);
echo"<tr>";
while ($row4 = mysqli_fetch_array($result1)){
echo "<td>";
echo $row4['name'];
echo "</td>";
}
echo "</tr>"
因此,每天可以有任意数量的班次,但是取决于班次是在哪一天,我需要将班次放在正确的表格标题下。
班次表具有:shift_id,名称,日期,日期
$resultsArray = array();
while ($row4 = mysqli_fetch_array($result1)){
$weekDay = $row4['day'];
$resultsArray[$weekDay][] = $row4['name'];
}
for ($x = 0; $x <= count($resultsArray); $x++) {
$sundayData = (!empty($resultsArray['Sunday'][$x]) ) ? $resultsArray['Sunday'][$x] : "";
$mondayData = (!empty($resultsArray['Monday'][$x]) ) ? $resultsArray['Monday'][$x] : "";
$tuesdayData = (!empty($resultsArray['Tuesday'][$x]) ) ? $resultsArray['Tuesday'][$x] : "";
$wednesdayData = (!empty($resultsArray['Wednesday'][$x]) ) ? $resultsArray['Wednesday'][$x] : "";
$thursdayData = (!empty($resultsArray['Thursday'][$x]) ) ? $resultsArray['Thursday'][$x] : "";
$fridayData = (!empty($resultsArray['Friday'][$x]) ) ? $resultsArray['Friday'][$x] : "";
$saturdayData = (!empty($resultsArray['Saturday'][$x]) ) ? $resultsArray['Saturday'][$x] : "";
echo "<tr>";
echo "<td>".$sundayData."</td>";
echo "<td>".$mondayData."</td>";
echo "<td>".$tuesdayData."</td>";
echo "<td>".$wednesdayData."</td>";
echo "<td>".$thursdayData."</td>";
echo "<td>".$fridayData."</td>";
echo "<td>".$saturdayData."</td>";
echo "</tr>";
}
?>
最佳答案
如果我可以看到您的数据的确切结构,则回答您的问题会更容易,但是无论如何,我都会稍作调整,希望您能看到我的研究方向。
我要做的是创建一个数组,并在遍历结果时填写信息。获得新的结果数组后,构建表。
$resultsArray = array();
while ($row4 = mysqli_fetch_array($result1)){
$weekDay = $row4['day'];
$resultsArray[$weekDay][] = $row4['shift'];
}
现在,您有了一个包含按天组织的所有班次的数组。遍历此数组将使您可以按自己的方式创建表。
这未经测试,因此可能会有一些错误,但这是一个示例...
for ($x = 0; $x <= 10; $x++) {
echo "<tr>";
echo "<td>".$resultsArray['Sunday'][$x]."</td>";
echo "<td>".$resultsArray['Monday'][$x]."</td>";
echo "<td>".$resultsArray['Tuesday'][$x]."</td>";
echo "<td>".$resultsArray['Wednesday'][$x]."</td>";
echo "<td>".$resultsArray['Thursday'][$x]."</td>";
echo "<td>".$resultsArray['Friday'][$x]."</td>";
echo "<td>".$resultsArray['Saturday'][$x]."</td>";
echo "</tr>";
}
注意:请记住,必须更改此部分
$x <= 10
以适合实际的数组大小。