У меня проблема с доступом к таблице "комментарии" в базах данных с PHP - PullRequest
0 голосов
/ 23 октября 2019

У меня есть код, который имеет доступ к таблице «комментариев» в моей базе данных. Я сделал переменную соединения и создал все вещи, чтобы получить таблицу. Но я при сохранении и обновлении страницы показываю эту ошибку ниже. В чем проблема?

  <?php
    // connection
    $connection = mysqli_connect(
    $config['db']['server'],
    $config['db']['username'],
    $config['db']['password'],
    $config['db']['name']
);

if ($connection == false)
{
    echo 'Error!<br>';
    echo mysqli_connect_error();
    exit();
}
// comments
        $сomments = mysqli_query($connection, "SELECT * FROM `comments` ORDER BY `articles_id` DESC LIMIT 5");
        while ($com = mysqli_fetch_assoc($comments)) 
        {
          ?>
          <article class="article">
            <div class="article__image" style="background-image: url(https://www.gravatar.com/avatar/<?php echo md5($com['email']); ?>?s=125);"></div>
            <div class="article__info">
              <a href="/article.php?id=<?php echo $com['articles_id']; ?>"><?php echo $com['author']; ?></a>

              <div class="article__info__preview"><?php echo mb_substr(strip_tags($com['text']), 0, 100, 'utf-8') .  ' ...'; ?></div>
            </div>
          </article>
          <?php
        }
      ?>

Предупреждение: mysqli_fetch_assoc () ожидает, что параметр 1 будет иметь значение mysqli_result, значение NULL указано в W: \ domains \ itblog.kg \ includes \ sidebar.php в строке 56. В чем проблема?

1 Ответ

0 голосов
/ 23 октября 2019

Проблема в том, что запрос ($comments = mysqli_query(...) возвращает нулевое значение. Это означает, что возникла некоторая проблема с запросом.

Попробуйте изменить код следующим образом:

 $сomments = mysqli_query($connection, "SELECT * FROM `comments` ORDER BY `articles_id` DESC LIMIT 5");

// start new
        if (!$comments) {
               echo "Error - " . mysqli_error($connection);
        } else 
// end new

        while ($com = mysqli_fetch_assoc($comments)) 
        {
          ?>
          <article class="article">
...

(Обратите внимание, что вы должны также окружить весь цикл while скобками {}, поскольку это предложение else, чтобы избежать будущих ошибок. Но оно должно работать следующим образом.)

Скрипт должен сообщать об ошибке, которую он видит, и должен позволять исправить запрос.

Правка - держу пари, что таблица comments не имеет столбца articles_id - вероятно, это должен быть article_id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...