【发布时间】:2017-07-13 22:51:13
【问题描述】:
所以我有一个预订功能,用户可以每天预订篮球场。我想要的是验证他们将预订限制为每天一小时。我最初想出的是在数据库中搜索所有预订,其中预订者的用户名与会话用户名相同。如果行数超过或等于 1,那么它应该返回 false。这样做的问题是它会限制预订,但也会限制其他日期的预订。我想要的是,如果我今天预订,我今天不能再预订,但我可以预订明天。实现这个的正确逻辑是什么?
型号:
function check_maxhour_courtone()
{
$query = $this->db->select('*')->from('courtone_reservation')->where('username', $this->session->userdata('username'))->where('reservation_status', 1)->get();
if($query->num_rows() >= 1)
{
return FALSE;
}
else
{
return TRUE;
}
}
【问题讨论】:
-
虽然我对 CI 不是很熟悉,但如果今天匹配,我会有条件地检查 reservation_date。如果是这种情况,您可以检查是否已经进行了预订,如果没有,则可以进行预订。
-
您需要限制每小时或每天 1 次的预订?
-
我需要将每个人每天的预订时间限制为 1 小时。这意味着,例如,2 月 23 日,我为 6:00 PM - 7:00 PM 预留了一个时段,然后我无法再为 7:00 PM - 8:00 PM 预留一个时段。不过,我仍然可以为 2 月 24 日预订另一次预订,但当天也应该只允许 1 小时的预订。
-
如果我在 2 月 23 日晚上 6:00 - 晚上 7:00 预订,我可以在 2 月 23 日晚上 9:00 - 晚上 10:00 再次预订吗?
-
不,因为我已经用完了 1 小时(下午 6:00 - 晚上 7:00)。我仍然可以在 2 月 24 日预订,但也会有同样的限制。
标签: php sql codeigniter