如何从数据库中获取新闻并在PHP页面上打印?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (76)

我想从数据库中获取最后两条消息,然后使用函数在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>
            ";
        }
    }
?>
提问于
用户回答回答于

这正是你告诉它要做的!在for($i=0; $i < count($newsHome); $i++)循环内部它产生2个div,每个div包含相同的“news”($newsHome[$i]['title']两次

您希望第一个div包含第一篇文章,第二个div包含第二篇文章。

如果你删除for循环中的第二个div,它将为每个“新闻”创建一个div。

(你可能不得不移动2个外部div(<div class='container'><div class='row'>在循环外)

用户回答回答于

这可能是最简单的:$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>
                ";
}

扫码关注云+社区

领取腾讯云代金券