2017-01-05 71 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>