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 portion of data should be display vertically in table with respect to Day

    //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>";
?>

I want to show time slots vertically with respect to day in table. This is the output of this code:

Output

But I want to display time which is showing horizontally that should be shown vertically. Eg. 1-3, 3-5, 5-7 of first row should be shown below Monday, then next row should be shown below Tuesday and so on.

Nisse Engström
  • 4,738
  • 23
  • 27
  • 42
Giridhari Lal
  • 163
  • 2
  • 11

1 Answers1

1

Try using a query like this:

SELECT day FROM time_slot ORDER BY time_slot, day;

That should get the data in an easier order to process. I can't see your exact data structure but it looks like you should get 7x 01:00-03:00, then 7x 03:00-05:00 etc. Each set should be in order by day. Then you can just write out your <td>s in the order the data comes from the DB. Keep track of when the day value changes (or just count up to 7) and start a new <tr> at that time.

ADyson
  • 57,178
  • 14
  • 51
  • 63