在表中垂直显示数据库中的数据

时间:2017-01-05 12:39:07

标签: php html mysql

<?php

echo "<table class=\"table table-hover table-bordered\">";
echo "<thead>";
echo "<tr>";
$result=mysqli_query($con,"SELECT day FROM time_slot ORDER BY day;");

while($row=mysqli_fetch_array($result))
{
    $days = array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
    $day = $row['day']-1;
    $day = $days[$day];
    echo '<th>';
    echo $day;
    echo '</th>';
}
echo "</tr>";
echo "</thead>";

require('../includes/connection.php');

$result=mysqli_query($con,"SELECT * FROM time_slot ORDER BY day DESC;");

while($row=mysqli_fetch_array($result))
{
    echo "<tbody>";  
    echo "<tr>";

这部分数据应相对于日期垂直显示在表格中

    //This code to split time into intervals

    $starttime = $row['start_time'];  // your start time
    $endtime = $row['end_time'];  // End time
    $duration = $row['slot_time'];  

    $array_of_time = array ();
    $start_time    = strtotime ($starttime); //change to strtotime
    $end_time      = strtotime ($endtime); //change to strtotime

    $add_mins  = $duration * 60;

    while ($start_time <= $end_time) // loop between time
    {
        echo '<td>';
        echo "<div align=\"center\">";
        print_r(date ("h:i", $start_time) ."-". date("h:i", $start_time += $add_mins));
        //
        echo "</br><input type=\"radio\" name=\"texi\" value=\"1\" ></input>";
        echo '</td>' ;
        echo '</div>';
    }
    echo "</tr>";
    echo "</tbody>";
}            

mysqli_close($con);

echo  "</table>
       </div>
       <input type=\"submit\" value=\"Book Slot\"  class=\"button_drop\">
       </form>";
?>

我希望相对于表格中的日期垂直显示时间段。 这是此代码的输出:

Output

但是我希望显示水平显示的时间,应该垂直显示。例如。第一行的1-3,3-5,5-7应该在星期一下面显示,然后下一行应该在星期二下面显示,依此类推。

1 个答案:

答案 0 :(得分:1)

尝试使用如下查询:

SELECT day FROM time_slot ORDER BY time_slot, day;

这应该使数据更容易处理。我无法看到您确切的数据结构,但看起来您应该得到7x 01:00-03:00,然后是7x 03:00-05:00等。每一组都应该按天排序。然后,您可以按照数据来自数据库的顺序写出<td>。跟踪day值何时更改(或最多只计数7)并在此时开始新的<tr>