2017-01-05 68 views
3
<?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

尝试使用这样的查询:

SELECT day FROM time_slot ORDER BY time_slot, day; 

这应该得到一个更简单的为了处理数据。我看不到您的确切数据结构,但它看起来应该是7x 01:00-03:00,然后是7x 03:00-05:00等。每个集合应该按天排序。然后你可以按照数据来自数据库的顺序写出你的<td>。跟踪day值何时更改(或只计数到7),并在此时开始新的<tr>