Php 张贴专栏

Php 张贴专栏,php,Php,对于学校作业,我需要制作一个博客系统。我几乎让它工作,但有一个问题,我的PHP将只发送一列,而不是全部 <body> <?php require_once("nbbc/nbbc.php"); $bbcode = new BBCode; $sql = "SELECT * FROM post ORDER BY date DESC"; $res = mysqli_query($db, $sql) or die(mysqli_error($db)); $posts = "";

对于学校作业,我需要制作一个博客系统。我几乎让它工作,但有一个问题,我的PHP将只发送一列,而不是全部

<body>
<?php
require_once("nbbc/nbbc.php");

$bbcode = new BBCode;

$sql = "SELECT * FROM post ORDER BY date DESC";

$res = mysqli_query($db, $sql) or die(mysqli_error($db));

$posts = "";

if(mysqli_num_rows($res) > 0) {
    while($row = mysqli_fetch_assoc($res)) {
        $id = $row['id'];
        $title = $row['title'];
        $content = $row['content'];
        $date = $row['date'];

        $admin = "<div><a href='del_post.php?pid=$id'>Delete</a>&nbsp;<a href='edit_post.php?pid=$id'>Edit</a></div>";

        $output = $bbcode->Parse($content);

        $posts = "<div><h2><a href='view_post.php?pid=$id'>$title</a></h2><h3>$date</h3><p>$output</p>$admin</div>";
    }
    echo $posts;
} else {
    echo "Er zijn geen berichten te bekijken vandaag!";
}

    ?>


首先,这是学校的作业,祝你好运

回到你的问题上来

在循环之前,您已经初始化了
$posts

在每次迭代中,您都应该将loop的输出附加到
$posts

您没有在循环中连接输出

因此,每次循环运行时,
$posts
的值都会更新为最新的值

因此,只有最后一次迭代的值才会显示为最新的值

因此,要添加连接,请将以下行修改为:

$posts .= "<div><h2><a href='view_post.php?pid=$id'>$title</a></h2><h3>$date</h3><p>$output</p>$admin</div>";
$posts.=“$date$output

$admin”;
请注意
=
之前的额外
,这是PHP中的串联运算符


希望它能有所帮助。

您在
循环时在
之外回显
$posts
。将其移动到
while
循环中,您可能会得到您想要的结果。您每次都会覆盖
$posts
,而不是附加到它。因此,它将只保留最后一个值。