我正在建造一个停车场应用程序,其中不同的用户有不同数量的停车位。此编号由数据库中的管理员设置。用户可以输入一个铭牌,然后将其添加到数据库中。我想要的是当用户占据所有位置时,他将无法再插入任何牌照。
但是,现在我现在有以下代码:
if(isset($_POST['number_plate'])){
$numberPlate = $_POST['number_plate'];
$user_id = $_SESSION['id'];
$query = mysql_query("SELECT `parking_spots` FROM `login` WHERE `id` = ".$user_id." ");
$row = mysql_fetch_assoc($query);
$totalNumberOfSpots = $row['parking_spots'];
$occupiedNumberOfSpots = 0;
$sql = "INSERT INTO amsterdam (numberplate, user_id) VALUES ('$numberPlate','$user_id')";
if(mysql_query($sql))
{
echo 'numberplate added';
$occupiedNumberOfSpots++;
if($occupiedNumberOfSpots == $totalNumberOfSpots)
{
echo "There are no more spots avialable";
}
}
else
{
echo 'Something went wrong!';
}
}
但是当我回显$ occupiedNumberOfSpots变量时,它会一直返回1并且每次添加数字时都不会递增。
我该如何解决这个问题?
答案 0 :(得分:1)
这是因为每次向数据库添加一个盘子时都运行相同的代码。
这个:
$occupiedNumberOfSpots = 0;
也应该从db中获取。我想它应该是这样的:
$totalNumberOfSpots = 100; // for example
$occupiedNumberOfSpots = $row['parking_spots']; // taken from db
而不是:
$totalNumberOfSpots = $row['parking_spots'];
$occupiedNumberOfSpots = 0;