我从头开始创建自己的博客,主页按照发布的时间顺序加载最新的帖子。我使用前端控制器调用帖子并将数据存储在MySQL数据库中。该网站本身很好,帖子都完美加载没有问题。问题是让主页工作。PHP while while从数据库中取回发布数据
我为主页创建了几个PHP函数。他们通常按照ID降序排列帖子(数据库行),因为它是一个自动增量字段,并调用它们的数据。然后通过从数据库最顶端的行中获取最新帖子,将最新帖子显示为顶部的“精选帖子”,这是最新的帖子。
而且工作正常 - 当我回应结果时,它显示最新的帖子,就像我想要的一样。
在此之下,我想为两个帖子并排放置两个帖子,在第一个帖子之前。所以我做了这个函数来调用它们:
function fetch_rest_posts_1($conn) {
$stuff = $conn->query("SELECT * FROM table WHERE is_post = 1 ORDER BY id DESC LIMIT 1,2");
while ($row = $stuff->fetch_array()) {
$i=1;
return '<div id="post_'.$i.'" style="width:308px;height:215px;padding:5px">
<h2>'.$row['title'].'</h2>
<p>'.date('d/m/Y',strtotime($row['published_date'])).' by '.$row['author'].' | <a href="http://www.domainname.com/'.$row['uri'].'#disqus_thread"></a></p>
<p>'.$row['meta_description'].'</p>
</div>';
$i++;
} // style="white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis"
}
,它实际上没有工作的伟大,当我呼应的结果,显示了我想要的一切,但它只能显示一个DIV,而不是两个。当我使用SQL查询并直接将它输入到phpMyAdmin中时,它给了我两行。我做错了什么?
(我把自动增加有$我,这样我可以隔离每个箱子,后来改变了风格。)
'return'退出函数,它不走到另一个循环。 – Eternal1 2014-09-18 18:54:10
Damnit。回声呢? – jonbaldie 2014-09-18 18:56:44
你每次循环时都会声明$ i,如果你再次声明它,$ i将永远不会增加。取出$ i = 1; ...以及@TwiStar所说的...... – 2014-09-18 18:59:59