将状态设置为一行并同时拒绝其他行

时间:2014-12-17 09:32:50

标签: mysql

我在这里要做的是根据发布的值将状态从待定状态更新为“已批准”或“已拒绝”状态。

该方案是有一个请求发送给某些管理员。例如,此请求将发送给5 Admin。

如果这5个管理员中只有一个管理员将待处理状态更新为“已批准”,则其他管理员的此请求将自动被拒绝。

反之亦然,如果一个管理员“拒绝”此请求,则意味着仍有四名管理员可以接受该请求。

   $result = $mysqli->query ("UPDATE infistall_location_stock_collect_list 
                              SET status = '$status'
                              WHERE location_id = '$locationed'
                              AND reference_no = '$reference_no'");

所以重点是,我想检查管理员发送的状态。它被拒绝了吗?或者它是否被批准。

如果上述查询的状态为“已批准”,则另一个查询将被拒绝

   $result = $mysqli->query ("UPDATE infistall_location_stock_collect_list 
                              SET status = 'REJECTED'
                              WHERE location_id <> '$locationed'
                              AND reference_no = '$reference_no'");

   //Pay attention to location_id => which admin it is.

只有3种状态:待处理,已批准,已拒绝。

Pending是用户发送请求时的默认状态。

1 个答案:

答案 0 :(得分:0)

我认为你只需要一个IF声明:

   $update = $mysqli->query ("UPDATE infistall_location_stock_collect_list 
                              SET status = '$status'
                              WHERE location_id = '$locationed'
                              AND reference_no = '$reference_no'");
if ($status == "APPROVED"){
   $update_other = $mysqli->query ("UPDATE infistall_location_stock_collect_list 
                              SET status = 'REJECTED'
                              WHERE location_id <> '$locationed'
                              AND reference_no = '$reference_no'");

}