如何解决使用 PHP 和 MySQL 限制每个用户的预订数量
我的用户可以创建预订,但我想限制它 - 假设一个用户最多可以进行 5 个处于“待定”状态的预订,在管理员批准预订和待批准状态更改后,用户可以进行另一个预订。
当用户进行预订时,默认情况下会显示待处理状态。我想实现的是,如果预订表在同一个 user_id 下有 5 个待处理的预订,则用户无法进行新的预订,因此他会收到无法进行更多预订的警报。
我的问题是,我怎样才能做到这一点?是通过使用 COUNT,还是应该为其创建触发器?如有任何有关如何处理此问题的建议,我们将不胜感激。
解决方法
最简单的方法是在处理用户输入时执行另一个查询。新查询将执行类似于 SELECT COUNT(*) FROM reservations WHERE user_id=? AND status='pending'
的内容。然后,您可以在 PHP 中检查此查询的结果。如果它大于或等于您施加的限制,则向用户显示一条消息,通知他们已达到最大待处理预订数,他们需要等待。
伪代码:
-
如果请求新的预订
-
准备一个语句来检查当前用户的待处理预订数量。
-
执行并获取结果
-
如果计数 >= 5
4.1.停止处理请求并向用户显示一条消息
-
其他
5.1.继续插入新的预订。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。