Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用sql检查特定时间的餐厅餐桌可用性_Php_Mysql_Sql_Yii - Fatal编程技术网

Php 使用sql检查特定时间的餐厅餐桌可用性

Php 使用sql检查特定时间的餐厅餐桌可用性,php,mysql,sql,yii,Php,Mysql,Sql,Yii,我正在尝试使用yii框架构建一个餐馆桌子管理应用程序,目前我一直在检索特定时间内桌子的可用性 我有下列表格 下图显示了我的表格结构 我使用以下代码获得可用的表 $model = new Table; $criteria = new CDbCriteria; $criteria->condition = 'floor_id=' . $floorid; $rows = $model->model()->with(array(

我正在尝试使用yii框架构建一个餐馆桌子管理应用程序,目前我一直在检索特定时间内桌子的可用性

我有下列表格

下图显示了我的表格结构

我使用以下代码获得可用的表

    $model = new Table;
    $criteria = new CDbCriteria;
    $criteria->condition = 'floor_id=' . $floorid;
    $rows = $model->model()->with(array(
                'bookingTables' => array(
                    'condition' => 'bookingTables.table_id IS NULL'
                    )))->findAll($criteria);
这仅在预订表中不存在表ID时有效

假设假设booking_table表已填充了表ID,则上述代码将不起作用,它将始终返回为not available(不知道如何使用时间来获取可用表)


因此,我如何获得特定时间段的可用表任何yii或sql解决方案既然您同时接受sql和yii,我就给您一个sql解决方案

如果您想在给定的时间检查可用性,您需要知道预订日期(包括小时),所以让我们考虑在“预订”表中添加字段“保留日期”,并考虑预订在2小时后结束。 以下是我将在SQL中执行的操作:

SELECT t.table_id
FROM TABLE AS t
LEFT OUTER JOIN booking_table AS b ON b.booking_table_id = t.table_id
WHERE b.booking_id IS NULL
    OR DATE_ADD(NOW(), INTERVAL 2 HOUR) > b.reservation_date

此查询列出执行查询时所有可用的表。如果您想在特定时间检查可用性,请将“NOW()”替换为您需要的任何内容。

好问题!只是出于好奇,你选择YII的原因是什么?如果你学会了它,它会很简单,开发进度也会很快。它是查询生成器还是sql,我需要一个解决方案@rdlowreyI认为使用框架可以通过代码安排和重用使生活变得更轻松请列出你目前为止的查询,看看是否有人可以改进它。在您的模式中,预订的日期/时间在哪里?