【问题标题】:Limiting number of reservations per user with PHP and MySQL使用 PHP 和 MySQL 限制每个用户的预订数量
【发布时间】:2021-01-18 14:20:45
【问题描述】:

我的用户可以创建预订,但我想限制它 - 假设一个用户最多可以进行 5 个“待定”状态的预订,在管理员批准预订和待定状态更改以批准后,用户可以进行另一个预订。

当用户进行预订时,默认情况下会给出待处理状态。我想要实现的是,如果reservations 表在同一个user_id 下有5 个Pending 预订,则用户无法进行新预订,因此他会收到无法进行更多预订的警报。

我的问题是,我怎样才能做到这一点?是使用 COUNT,还是应该为它创建触发器?非常感谢您提供有关如何处理此问题的任何建议。

【问题讨论】:

  • 您需要这样的查询:SELECT COUNT(*) as number_of_reservations FROM reservations WHERE user_id = id and status = 'pending'。如果大于 5,则返回错误消息。
  • 谢谢@Daan,应该在我的“创建预订”查询中使用还是单独使用?
  • 用户可以一键进行多次预订吗?
  • 我会在您调用“创建预订”查询之前执行选择查询。
  • 不,@KIKOSoftware,您可以预订的每栋房子都有自己的 ID,所以一栋房子 - 一个预订按钮 - 一个预订。

标签: php limit


【解决方案1】:

最简单的方法是在处理用户输入时执行另一个查询。新查询将执行类似于SELECT COUNT(*) FROM reservations WHERE user_id=? AND status='pending' 的内容。然后,您可以在 PHP 中检查此查询的结果。如果它大于或等于您施加的限制,则向用户显示一条消息,通知他们已达到最大未决保留并且他们需要等待。

伪代码:

  1. 如果请求新的预订

  2. 准备一个语句来检查当前用户的待定预订数量。

  3. 执行并获取结果

  4. 如果计数 >= 5

    4.1。停止处理请求并向用户显示消息

  5. 其他

    5.1。继续插入新的预留。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2022-11-22
    相关资源
    最近更新 更多