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

问题描述 投票:-1回答:2

我想从数据库中获取最后两条消息,然后使用函数在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>
            ";
        }
    }
?>
php mysql html5 bootstrap-4
2个回答
0
投票

这可能是最简单的:在循环内增加$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>
                ";
}

0
投票

这正是你告诉它要做的!在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'>在循环外)

© www.soinside.com 2019 - 2024. All rights reserved.