Как создать сообщение об ошибке, когда пользователь нажимает на кнопку в php?

#php

#php

Вопрос:

Я создаю функцию, в которой пользователь не может требовать сегодняшнюю денежную транзакцию на своем счете. Но все равно можно просмотреть их сегодняшнюю транзакцию. Итак, я хотел создать сообщение, информирующее пользователя о том, что если пользователь хочет потребовать свою сегодняшнюю транзакцию, он не может этого сделать. Им придется вернуться завтра, если они захотят. Это то, что я пробовал, но это не работает, и оно не показывало сообщение. Я пытаюсь отобразить сообщение Comeback tomorrow!

 $connection = mysqli_connect("lolo", "hahaha", "", "eh");
$ql = "UPDATE kola SET setatus ='upgrade' WHERE ID = 'opopo1' AND 
DATE(date) !=CURRENT_DATE() ";
$ql_claim = mysqli_query($connection, $ql);

if (mysqli_affected_rows($ql_claim) > 0) {
    echo "<script>alert('Successful!')</script>";
    echo "<script>window.location = 'nextPage.php'</script>";
} else
    echo "<script>alert('Comeback tomorrow!')</script>";
}
  

Я хотел отобразить Comeback tomorrow предупреждение, но мое предупреждение не работает.

Комментарии:

1. Не $ql_claim = mysqli_query($connection,$ql_claim); должно быть $ql_claim = mysqli_query($connection,$ql); ?

2. да, не беспокойтесь об этом, я забыл отредактировать код здесь, да, так и должно быть. но я все еще не получаю предупреждающее сообщение.

3. Попробуйте var_dump(mysqli_affected_rows($ql_claim)) и посмотрите, что он на самом деле получает. Я предполагаю, что вы видите Successful! предупреждение?

4. @waima, работает ли мой ответ или нет, пожалуйста, скажите мне

Ответ №1:

Я заметил, что { в вашем коде после условия отсутствует фигурная скобка else , поэтому я обновил ваш код.

 $conn = new mysqli("lolo","hahaha","", "eh");
$status = "upgrade";
$id = "opopo1";
$ql_claim = $conn->prepare("UPDATE kola SET setatus = ? WHERE ID = ? AND DATE(date) != CURRENT_DATE()");
$ql_claim->bind_param("ss", $status, $id);
$ql_claim->execute();
if($ql_claim->affected_rows > 0 ) {
    echo "<script>
             alert('Successful!');
             window.location = 'nextPage.php';
          </script>";  
}
else{
    echo "<script>
             alert('Comeback tomorrow!');
         </script>";
}
  

Примечание: Пожалуйста, всегда используйте подготовленные инструкции при выборе, обновлении, вставке или удалении запроса в MySQL, чтобы избежать атаки SQL-инъекций.

Комментарии:

1. Также их скрипт не подвержен SQL-инъекции, поскольку в нем нет значений переменных. Однако вопрос в том, является ли это их реальным кодом или используются только статические идентификаторы / значения.

2. @Jonnix, но в этом случае есть дополнительная скобка, которая может привести к возникновению ошибки

3. Ах, я понимаю, что вы имеете в виду, это, вероятно, ошибка / дополнительный бит c p, но хороший улов.

4. это не работает. Он не показал мне предупреждение о Comeback Tomorrow

5. @waima, я думаю, вы не получили ожидаемый результат только из-за $mysqli->affected_rows , попробуйте альтернативный способ или поделитесь с нами своей структурой таблицы, чтобы решить вашу проблему.