我有一个带标题的表;周日,周一,周二,周三,周四,周五和周六。我已经从数据库中收集了用户的“班次” ...

<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以适合实际的数组大小。

10-01 01:13
查看更多