ЕСЛИ заявление не работает в моей ситуации

if (isset($_POST["submit2"])) {
$uid = $_SESSION["uid"];
$remove_id = $_POST["remove_id"];
$sql = "DELETE FROM orders WHERE product_id = '$remove_id' AND user_id = '$uid'";
$run_query = mysqli_query($link,$sql);
$payment = $_POST["p_status"];
$method = "Paypal";
if ($payment == $method) {
echo "Please contact the company";
}
else if ($run_query) {
echo "<meta http-equiv='refresh' content='0'>";
}
}

Мое заявление if не работает. всегда продолжайте run_query.пожалуйста, помогите мне спасибо. p_status такое «Paypal»

-2

Решение

Ваша проблема в том, что, поскольку ваш запрос не содержит ошибок, mysqli_query будет возвращать true каждый раз, когда вы запускаете запрос, даже если нет строк для удаления. Что вам нужно сделать, это проверить, были ли удалены какие-либо строки с помощью mysqli_affected_rows вместо:

if($payment == $method) {
echo "Please contact the company";
}
else if (mysqli_affected_rows($link) > 0) {
echo "<meta http-equiv='refresh' content='0'>";
}
0

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

Возможно, потому что вы уже запускаете SQL еще до того, как приступите к условию. Как то, что я заметил

$ run_query = mysqli_query ($ link, $ sql) // Это уже было выполнено перед выполнением оператора if и назначением его результата переменной $ run_query.

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

if (isset($_POST["submit2"])) {
$uid = $_SESSION["uid"];
$remove_id = $_POST["remove_id"];
$sql = "DELETE FROM orders WHERE product_id = '$remove_id' AND user_id = '$uid'";
$payment = $_POST["p_status"];
$method = "Paypal";
if ( $payment == $method ) { // It will check first if condition is true
echo "Please contact the company";
} else if ( mysqli_query($link,$sql) ) { // It will be executed it the condition is false.
echo "<meta http-equiv='refresh' content='0'>";
}
}

Надеюсь это поможет 🙂

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector