2014-11-14 2 views
0

У меня возникают проблемы с извлечением данных из базы данных. Это действительно сводит меня с ума, тем более, что это точный код, который я использую для получения других таблиц, которые работают.Извлечение данных после первой строки

if ($content = $database->prepare($sql_get_all_articles)){ 
      $content->execute(); 
      $content->bind_result($id, $title, $content, $author, $date_posted); 

       while($content->fetch()){ 
        echo "<article> 
          <h2>".$title."</h2> 
          <div class=\"article-info\">Posted on <time datetime=\"".$date_posted."\">".$date_posted."</time> by <a href=\"#\" rel=\"author\">".$author."</a></div> 
          <p>".$content."</p> 
          <a href=\"#\" class=\"button\">Read more</a> 
          <a href=\"#\" class=\"button\">Comments</a> 
          </article>"; 
       } 

      $content->close(); 
     } 

Код работает один раз, он публикует только первую статью. Но при попытке вторую он возвращает ошибку:

Фатальная ошибка: Вызов функции-члена выборки() на не-объект в C: \ XAMPP \ HTDOCS \ index.php в строке 47

В SQL заявление, которое я использую:

$sql_get_all_articles = "SELECT id, title, content, author, date_posted FROM article"; 
+0

Вы используете '$ content', чтобы указать как запрос, так и одно из полей, упомянутых в' bind_result() ', для захвата результатов запроса. Таким образом, первая операция 'fetch()' перезаписывает запрос. –

+0

Посмотрите на мой ответ для будущего решения в этом ... – RichardBernards

ответ

1
if ($content = $database->prepare($sql_get_all_articles)){ 
     $content->execute(); 

      while($result = $content->fetchObject()){ 
       echo "<article> 
         <h2>".$result->title."</h2> 
         <div class=\"article-info\">Posted on <time datetime=\"".$result->date_posted."\">".$date_posted."</time> by <a href=\"#\" rel=\"author\">".$result->author."</a></div> 
         <p>".$result->content."</p> 
         <a href=\"#\" class=\"button\">Read more</a> 
         <a href=\"#\" class=\"button\">Comments</a> 
         </article>"; 
      } 

     $content->close(); 
    } 
1

Вы используете $content назвать как запрос и одно из полей, указанных в bind_result() для захвата результатов запроса. Таким образом, первая операция fetch() перезаписывает запрос.

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