我刚刚开始使用PHP与MongoDB,我想要做的是从数据库中获取数据,并自动调用它创建单独的post div。但是在我实现下面的代码之后会发生什么呢,它只是向我展示了最近的一个而不是我实际上收集的所有三个文档...
这是函数的代码,我知道这是一个非常基本的错误(可能):
function get_posts($cursor){
while ($cursor->hasNext()) {
$entry = $cursor->getNext();
$blog_body = "";
$blog_body = $blog_body . '<div class="wrap-it">';
$blog_body = $blog_body . '<div class="jumbotron">';
$blog_body = $blog_body . '<div class="container">';
$blog_body = $blog_body . "<h2>" . $entry['title'] ."</h2>";
$blog_body = $blog_body . "<p>". $entry['description'] ."</p>";
$blog_body = $blog_body . '<p><a class="rec-btn">Read more »</a></p>';
$blog_body = $blog_body . '</div></div></div>';
}
return $blog_body;
}
并且这样称呼:
<?php $posts = get_posts($cursor);
echo $posts; ?>
答案 0 :(得分:0)
错误在于 $ blog_body =“” (在while循环之前移动):
function get_posts($cursor){
$blog_body = "";
while ($cursor->hasNext()) {
$entry = $cursor->getNext();
$blog_body = $blog_body . '<div class="wrap-it">';
$blog_body = $blog_body . '<div class="jumbotron">';
$blog_body = $blog_body . '<div class="container">';
$blog_body = $blog_body . "<h2>" . $entry['title'] ."</h2>";
$blog_body = $blog_body . "<p>". $entry['description'] ."</p>";
$blog_body = $blog_body . '<p><a class="rec-btn">Read more »</a></p>';
$blog_body = $blog_body . '</div></div></div>';
}
return $blog_body;
}
答案 1 :(得分:0)
在这一行中,您将重置每次新迭代的$ blog_body内容。
$blog_body = "";
这样称呼
function get_posts($cursor) {
$blog_body = "";
while ($cursor->hasNext()) {
$entry = $cursor->getNext();
$blog_body .= '<div class="wrap-it">';
$blog_body .= '<div class="jumbotron">';
$blog_body .= '<div class="container">';
$blog_body .= "<h2>" . $entry['title'] ."</h2>";
$blog_body .= "<p>". $entry['description'] ."</p>";
$blog_body .= '<p><a class="rec-btn">Read more »</a></p>';
$blog_body .= '</div></div></div>';
}
return $blog_body;
}