sql — php ifelse keep run else оператор

Я Хава сделать функцию бронирования класса
Я хочу повторить заявление, если пользователь забронирует класс, который уже забронирован.
Я проверяю его, чтобы убедиться, что оператор ifelse работает, но SQL INSERT внутри ELSE {} запускается один раз после IF {}
Я не знаю почему и не могу найти в чем ошибка

$class=$_POST['class'];
$time=$_POST['time'];
$date=$_POST['date'];
$type=$_SESSION['type'];

$query=mysql_query("SELECT * FROM classroom");
while($row=mysql_fetch_array($query))
{
if ($row['name']==$class && $row['date']==$date && $row['time']==$time)
{

echo "The class at this time already been booked.";
}
else
{
mysql_query("INSERT INTO classroom(name,date,time,bookedby) VALUES('$class','$date','$time','$type')");
if ($_SESSION['username']=='admin') {
mysql_query("UPDATE classroom SET status='yes' WHERE name='$class' AND date='$date' AND time='$time'");
}
echo "booking submitted";
break;
}

}

-1

Решение

Используемая вами логика неверна. Попробуйте этот код вместо этого.

        $class=$_POST['class'];
$time=$_POST['time'];
$date=$_POST['date'];
$type=$_SESSION['type'];

$query=mysql_query("SELECT * FROM classroom where name='$class' && date='$date' && time='$time'");
if(mysql_num_rows($query)>0)
{
echo "The class at this time already been booked.";
}
else
{
mysql_query("INSERT INTO classroom(name,date,time,bookedby) VALUES('$class','$date','$time','$type')");
if ($_SESSION['username']=='admin') {
mysql_query("UPDATE classroom SET status='yes' WHERE name='$class' AND date='$date' AND time='$time'");
}
echo "booking submitted";
break;}

Я только что изменил твой код. Лучше изучить использование mysqli / pdo и заменить использование mysql, поскольку оно устарело.

Также лучше изменить имя столбца date на другое, так как date является предопределенным ключевым словом mysql. Несмотря на то, что он не включен в зарезервированные слова, и MySQL разрешает использование «date», я считаю, что не следует использовать его, так как это может привести к путанице, а также к некоторым конфликтам, в некоторых случаях возвращая ошибку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]