2016-10-25 4 views
0

У меня есть сценарий, который запускается, а затем направляется на страницу, чтобы удалить запись. Я хочу установить его так, когда количество записей равно нулю, страница перенаправляется на страницу index.php. Код выглядит следующим образом:Страница перенаправления, когда число записей равно нулю

$sql="SELECT * FROM fbi_with_invoice"; 
if ($result=mysqli_query($conn,$sql)) 
{ 
    $rowcount=mysqli_num_rows($result); 
    printf("There are %d rows remaining.\n",$rowcount); 
} 
if ($rowcount=0) { 
    header('refresh:5;url=index.php'); 
    mysqli_free_result($result); 
} 

$sql = "DELETE FROM fbi_with_invoice ORDER BY personid DESC LIMIT 1"; 

if ($conn->query($sql) === TRUE) { 
    header('refresh:5;url=index2.php'); 
} 
$conn->close(); 

В настоящее время $rowcount дает 0, однако страница перенаправляет на index2.php.

ответ

1

Проблема здесь: if ($rowcount = 0) Вы использовали оператор присваивания вместо оператора сравнения ==.

 $sql="SELECT * FROM fbi_with_invoice"; 
    if ($result=mysqli_query($conn,$sql)) 
    { 
    $rowcount=mysqli_num_rows($result); 
    printf("There are %d rows remaining.\n",$rowcount); 
    } 
    if ($rowcount == 0) { 
    header('refresh:5;url=index.php'); 
    mysqli_free_result($result); 
    } 
    $sql = "DELETE FROM fbi_with_invoice"; 

    if ($conn->query($sql) === TRUE && $rowcount) { 
    header('refresh:5;url=index2.php'); 
    } 
    $conn->close(); 
+0

Я пробовал это, но он по-прежнему возвращается к index2.php, а не index.php. –

+0

Кроме того, запрос DELETE неверен. Попробуйте использовать '$ sql =" DELETE FROM fbi_with_invoice ";' А также добавьте проверку $ rowcount в последний оператор if: 'if ($ conn-> query ($ sql) === TRUE && $ rowcount) { header ('refresh: 5; url = index2.php'); } ' – Mistery

+0

Я думаю, вы путали какую-то часть SQL-запроса от SELECT и DELETE, я думаю, что ваш запрос выбора должен быть: $ sql =" SELECT * FROM fbi_with_invoice ORDER BY personid DESC LIMIT 1 "; – Mistery

Смежные вопросы