我想从数据库中获取最后两条消息,然后使用函数在PHP页面上打印它们。
这两个新闻应该一个接一个地打印出来。
这就是我到目前为止所做的,我做错了什么?
这就是问题:
<?php
function getAllNewsHome(){
$connection = mysqli_connect("localhost", "root", "", "serverName");
$connection->query("SET NAMES 'utf8'");
$rsNewsHome = mysqli_query($connection, "SELECT * FROM news ORDER BY id DESC LIMIT 2");
$newsHome = mysqli_fetch_all($rsNewsHome, MYSQLI_ASSOC);
mysqli_close($connection);
for($i=0; $i < count($newsHome); $i++){
echo "
<div class='container'>
<div class='row'>
<div class='col-xs-6'>
<h1>".$newsHome[$i]['title']."
</h1>
<p>".$newsHome[$i]['content']."
</div>
<div class='col-xs-6'>
<h1>".$newsHome[$i]['title']."
</h1>
<p>".$newsHome[$i]['content']."
</div>
</div>
</div>
";
}
}
?>
这可能是最简单的:在循环内增加$i
,然后在回显之前确保它存在。这将允许您保持您的div对齐:
for($i = 0; $i < count($newsHome); $i++) {
echo "
<div class='container'>
<div class='row'>
<div class='col-xs-6'>
<h1>" . $newsHome[$i]['title'] . "
</h1>
<p>" . $newsHome[$i]['content'] . "</p>
</div>";
$i++;
echo "
<div class='col-xs-6'>";
if(array_key_exists($i, $newsHome)) {
echo "<h1>" . $newsHome[$i]['title'] . "
</h1>
<p>" . $newsHome[$i]['content'] . "</p>";
}
echo "
</div>
</div>
</div>
";
}
这正是你告诉它要做的!在for($i=0; $i < count($newsHome); $i++)
循环内部,它产生2个div,每个div包含两次相同的“新闻”($newsHome[$i]['title']
)!
您希望第一个div包含第一篇文章,第二个div包含第二篇文章。
如果你删除for循环中的第二个div,它将为每个“新闻”创建一个div。
(你可能不得不移动2个外部div(<div class='container'>
和<div class='row'>
在循环外)