Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从数据库中获取新闻并将其打印在PHP页面上?_Php_Mysql_Html_Bootstrap 4 - Fatal编程技术网

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

如何从数据库中获取新闻并将其打印在PHP页面上?,php,mysql,html,bootstrap-4,Php,Mysql,Html,Bootstrap 4,我想从数据库中获取最后两条新闻,然后使用函数在PHP页面上打印它们 这两条新闻应该一条挨着另一条印刷 这就是我到目前为止所做的,我做错了什么 这就是问题所在: <?php function getAllNewsHome(){ $connection = mysqli_connect("localhost", "root", "", "serverName"); $connection->query("SET NAMES 'utf8'");

我想从数据库中获取最后两条新闻,然后使用函数在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=0;$i循环中,它生成两个div,每个div包含相同的“新闻”(
$newsHome[$i]['title']
)两次

您希望第一个div包含第一个项目,第二个div包含第二个项目

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


(您可能需要将2个外部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
";
$i++;
回声“
";
如果(数组\键\存在($i,$newsHome)){
回显“.$newsHome[$i]['title']”
“$newsHome[$i]['content']。”

”; } 回声“ "; }
上面的代码有什么问题吗?另外,最好关闭PHP标记,删除
echo
,并使用
将HTML输出为HTML和echo。这是因为您要打印两次。您需要做的是将类放入循环中,然后可能添加一个计数器来决定是否需要使用c丢失/打开容器。或者你可以在两个6CL div之间的循环中间做<代码> $i++/COD>以获得下一个结果,但是确保你检查下一个迭代是否真的存在。“AynBER我曾经尝试过一次打印,但是它们将是一个在另一个上面,我需要它们并排。我在回音中遗漏了什么吗?