使用“选择 * 来自”来选择和识别 mysql 数据库中的冲突保留


Using "select * from" to select and identify clashing reservations in a mysql database

所以我尝试为游戏库制作一个预订系统。

$timestamp = (strtotime($StartDate));
$EndDate = strtotime("+$Duration days",$timestamp);

这部分代码将输入到表单中的日期转换为时间戳代码的第二行计算将游戏保留一定天数的结束日期时间戳。

在我看来,我是如何做到这一点的,方法是创建一个变量并从数据库中选择某些值。但是,我不擅长php,所以我不能100%确定我是否正确:

$reserved = mysql_query ("SELECT count(*) FROM reservations WHERE EndDate <= $EndDate AND StartDate >= $timestamp");
if (!$reserved) { /*do nothing*/ } ELSE { echo "That date has already been reserved"; }

这应该做的是从数据库中选择冲突的时间戳,然后如果变量$reserved不为空,我可以显示错误消息。但是,我无法让它工作。如何正确显示错误消息?

你应该使用如下:

    $result = mysql_query("Select * from reservations where StartDate >= '".$timestamp."' AND  EndDate <= '".$EndDate."'");
    $num_rows = mysql_num_rows($result);
    if($num_rows==0)
    { 
       //Your Process 
    } 
    else 
    { echo "That date has already been reserved"; }