Задать вопрос
@Durilka96

Как отдавать 404 ошибку если статей нет?

Суть такова что при обращении к базе данных то выводит статью, а если статей нет, то должен выводит 404 страницу
Применяю вот такую конструкцию
if (mysqli_num_rows($articles)<=0)
                            {   
             <?
                        header("Location: ../../../error/404.php");
                        
                <?php
                }


Выводит ошибку
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in S:\home\Blog\www\category\web\yakor-navigaciya-po-stranice-sajta\1.php on line 33
header(Location: ../../../error/404.php);
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Если нужна HTTP-ошибка 404:
http_response_code(404);
exit;

Далее — исправлено.
Если нужна переадресация:
header('Location: …', true, 301);
exit;

или
header('Location: …', true, 307);
exit;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Здесь возможны два варианта, в зависимости от того, что ожидается в переменной $articles

если список статей, то выкинуть mysqli_num_rows из условия и написать просто
if (!$articles)
    http_response_code(404);
    include("../../../error/404.php");
}


если же в $articles ожидается результат запроса, то разбираться с запросом. включить вывод ошибок mysqli и переписать зхапрос на подготовленные выражения

А главное - зарубить себе на носу что 404 через редирект не выводится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽