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»
Ваша проблема в том, что, поскольку ваш запрос не содержит ошибок, 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'>";
}
Возможно, потому что вы уже запускаете 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'>";
}
}
Надеюсь это поможет 🙂