nikoosya
@nikoosya

Ошибка php mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given?

<ul>
    <?php
        while( ($cat = mysqli_fetch_assoc($result)) )
        {
            $articles_count = mysqli_query($conection, 'SELECT * FROM `articles` WHERE `categories_id` = ' . $cat['id'] );
            echo '<li>' . $cat['name'] . '('. mysqli_num_rows($articles_count).') </li>';
        }
    ?>
</ul>


Выдает ошибку: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given

Ошибка в данной строке:
echo '<li>' . $cat['name'] . '('. mysqli_num_rows($articles_count).') </li>';
  • Вопрос задан
  • 8723 просмотра
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Сделайте так:
while( ($cat = mysqli_fetch_assoc($result)) )
{
    if ($articles_count = mysqli_query($conection, "SELECT * FROM `articles` WHERE `categories_id`='".mysqli_real_escape_string($connection, $cat['id'])."'"))
    {
        echo '<li>' . $cat['name'] . ' ('. mysqli_num_rows($articles_count).') </li>';
    }
}

После того, как налюбуетесь на работающий без ошибки скрипт, марш-марш вперёд читать про SQL injection и защиту от него (в том числе через mysqli_real_escape_string()).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
motokraft
@motokraft
Кратко о себе
Возможно $articles_count пустой, или не содержит объект mysqli_query.
Скорей всего там false
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
что в $cat['id']?
что возвращает запрос если его руками запустить из майадмина?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы