Я создаю приложение для парковки автомобилей, в котором у разных пользователей разное количество парковочных мест. Этот номер задается администратором в базе данных. Пользователь может ввести номерной знак, который затем будет добавлен в базу данных. Я хочу, чтобы, когда пользователь занял все пятна, он не сможет вставлять больше номерных знаков.PHP increment a var
Однако, теперь у меня есть следующий код на данный момент:
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 и не увеличивается каждый раз, когда я добавить номерной знак.
Как я могу решить эту проблему?
PHP это язык сценариев; когда скрипт заканчивается/страница загружена, переменная перестает существовать. Если вам это нужно, вы должны сохранить его в базе данных, например. И вы должны прочитать на sql-инъекции. – jeroen
Я думаю, что вам что-то не хватает. Всякий раз, когда кто-то подает форму, которая запускает ваш код, скрипт выполняется сверху вниз. Это означает несколько вещей. 1. Вы устанавливаете $ busyNumberOfSpots = 0; и 2. У сценария нет памяти. +1 для SQL Injection – Arnolio
Есть ли в цикле? – aperpen