在 html 中显示表数

凯文

我尝试为预订系统创建后端,并且需要在每个日期的每个位置显示所有预订的约会。我的约会表如下所示:

id, booked_date, location_id, customer_id

我想在这样的 html 表中显示它:

日期 1 日期 2
位置 1 名称 预约人数 预约人数
位置 2 名称 预约人数 预约人数

我有一个单独的位置表,其中包含完整的详细信息,例如和地址。

我还有一个事件日期表(id,start_date)

我很难理解我需要在这里做什么!

编辑:

我只是需要一些帮助,将所有内容整合到上面的示例表中。

数据库表:约会、地点、事件日期

我有这个查询和下面的功能 - SELECT t1.location_id, t1.start_datetime, t2.name, COUNT(*) AS count FROM appointment t1 INNER JOIN location t2 ON t1.location_id = t2.id GROUP BY t1.location_id, t1.start_datetime

    function countAppointment() {
    
      require 'config.php';
    
    $sql = "SELECT t1.location_id, t1.start_datetime, t2.name, COUNT(*) AS count
    FROM appointment t1
    INNER JOIN location t2
    ON t1.location_id = t2.id
    GROUP BY t1.location_id, t1.start_datetime";
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
      // output data of each row
      while($row = $result->fetch_assoc()) {
    
          $a1 = $row['start_datetime'];
          $a2 = $row['location_id'];
          $a3 = $row['name'];
          $a4 = $row['count'];
    
          //echo "$a1 <br> $a2 <br> $a3 <br> $a4 <br><br>";
    
          echo "<tr><th scope='row'>$a3</th>";
          echo "<td><a href='#'>$a4</a></td>";
          echo "<td>9</td><td>27</td><td>14</td></tr>";
    
      }
    } else {
       return "0";
    }

$conn->close();
}
sachin kumara liyanage

试试这个代码

<?php
$con = new mysqli("localhost","root","","test");

// Check connection
if ($con -> connect_errno) {
  echo "Failed to connect to MySQL: " . $con -> connect_error;
  exit();
}
$data = array();
$date_list= array();
$sql_date_list ="SELECT start_datetime from appointment GROUP BY start_datetime";
$result_date_list = mysqli_query($con, $sql_date_list); 
$sql_loc_list = "SELECT `name` FROM `location` GROUP BY `name`";
$result_loc_list = mysqli_query($con, $sql_loc_list); 
$k=0;
while ($row =mysqli_fetch_assoc($result_loc_list)){
    $data +=[$row['name']=>array()];
    if($k==0){
        while($row2 =mysqli_fetch_assoc($result_date_list)){
            array_push($date_list,$row2['start_datetime']);
            $data[$row['name']]+=[$row2['start_datetime']=>0];
        }
        $k++;
    }else{
        foreach($date_list as $date){
            $data[$row['name']]+=[$date=>0];
        }
    }
}

$sql_getdata = "SELECT t2.name as loc_name, t1.start_datetime, COUNT(t1.location_id) AS count FROM appointment t1 JOIN location t2 ON t1.location_id = t2.id GROUP BY t1.location_id,t1.start_datetime"; 
$result = mysqli_query($con, $sql_getdata); 
while($row =mysqli_fetch_assoc($result)){
    $data[$row['loc_name']][$row['start_datetime']]=$row['count'];
}
$table="<table border='1'>";
$table.="<tr>";
$table.="<th>location</th>";
foreach ($date_list as $date) {
    $table.="<th>".$date."</th>";
}
$table.="</tr>";
foreach ($data as $key=>$date) {
    $table.="<tr>";
    $table.="<td>".$key."</td>";
        foreach($date as $key2=>$count){
            $table.="<td>".$count."</td>";
        }
    $table.="</tr>";
}

$table.="<table>";
echo $table;
?>

输出 输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章