我正在构建一个订阅系统,对于每个类别,订阅系统都有一个订阅者限制。我使用的语言是PHP,数据库是MySQL。
这个想法是,用户在登录页面中选择要订阅的类别。在那里,有一个带有可用类别的输入(那些尚未通过订阅者限制的输入)。
我为订阅用户编写的代码如下:
$array_m = "SELECT * FROM talleres WHERE taller = '$tallerM'";
$result = mysqli_query($conn,$array_m);
$row = mysqli_fetch_assoc($result);
if($row['user_email'] === '') {
$row['user_email'] = json_encode(array());
}
$arrayDecoded = json_decode($row['user_email']);
$session_email = $_SESSION['u_email'];
// $usersYoga = array();
array_push($arrayDecoded,$session_email);
$arrayEncoded = json_encode($arrayDecoded);
$sql_t = "UPDATE talleres SET user_email='$arrayEncoded' WHERE taller='$tallerM'";
mysqli_query($conn,$sql_t);
我编写的用于显示哪些是可用订阅的代码是:
$tallerCheck = "SELECT user_email FROM talleres WHERE taller='$value'";
$result = mysqli_query($conn,$tallerCheck);
$row = mysqli_fetch_array($result);
$rowDecoded = json_decode($row['user_email']);
if(count($rowDecoded) >= $num) {
// Code for showing only the available options in the front-end
echo "<script>blockTaller('".$value."')</script>";
}
我期望当用户订阅时,订阅者的数量会增加,并且当达到限制时,该类别将不会显示(或被阻止)。 一次有一个用户订阅就没有问题。但是,当许多用户同时订阅时,他们都被订阅,而没有检查每个用户的限制(例如,对于类别A,限制为15,订阅者数量为14;两个用户同时订阅A,它们都被订阅,超过了限制,这是错误的。)
您是否知道可以做什么?在此先感谢您的帮助!