i have made a booking system where user can select time slot enter start & end time & save those values into MySql. Now i have found an issue where User A has booked time slot from 3-4. Now User B wants to book time slot 2.30-4.30. At present it is allowing User B to select the time slot which i don't want.Tried to code for it but not getting the desired result. Please Help!
<?php
session_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="testmra"; // Database name
// Connect to server and select databse.
$conn=mysqli_connect($host,$username,$password) or die("cannot connect");
mysqli_select_db($conn,$db_name);
$sname=$_SESSION['usr_name'];
$room = mysqli_real_escape_string($conn, $_POST['txtrname']);
$name = mysqli_real_escape_string($conn, $_POST['txtname']);
$purpose = mysqli_real_escape_string($conn, $_POST['txtpurpose']);
$attendee = mysqli_real_escape_string($conn, $_POST['attendee']);
$date = mysqli_real_escape_string($conn, $_POST['txtdate']);
$btime = mysqli_real_escape_string($conn, $_POST['btime']);
$etime = mysqli_real_escape_string($conn, $_POST['etime']);
$query="SELECT starttime,endtime FROM bookingdetails WHERE date = '$date' AND room='$room' ";
$result=mysqli_query($query);
$num=mysqli_num_rows($result);
$i=0;
while ($i <= $num)
{
$MinValue=mysqli_result($result,$i,"starttime");
$MaxValue=mysqli_result($result,$i,"endtime");
if (($btime < $MaxValue) && ($MinValue < $etime)) {
$overflowed=true;
}
$i++;
}
if ($overflowed)
{
//Error message
header("location:karma.php");
echo '<script language="javascript">';
echo 'alert(" Time Slot is overlapping.Change the time slot")';
echo '</script>';
}
else
{
//Save to database
$sql="INSERT INTO bookingdetails (room,name,purpose,attendee,date,starttime,endtime,status_id)VALUES('$room','$name','$purpose','$attendee','$date','$btime','$etime','2')";
}
if (mysqli_query($conn,$sql))
{
echo "Record added";
}
else
{
die('Error: ' . mysqli_error());
}
?>