注释未显示在php中

注释未显示在php中,php,mysql,Php,Mysql,我有一个表单可以将数据发送到我的数据库,通过这个表单我可以在我的帖子下添加评论,但问题是:当我去一篇帖子发表评论时,我必须(首先)插入一条评论,在插入一条评论后,我可以看到其他评论,我不确定问题出在哪里 表单php <?php echo "<form class='form-horizontal well' method='POST' action='".setComments($conn)."'> <input type='hidden' name=

我有一个表单可以将数据发送到我的数据库,通过这个表单我可以在我的帖子下添加评论,但问题是:当我去一篇帖子发表评论时,我必须(首先)插入一条评论,在插入一条评论后,我可以看到其他评论,我不确定问题出在哪里

表单php

<?php 

    echo "<form class='form-horizontal well' method='POST' action='".setComments($conn)."'>
    <input type='hidden' name='id' value='".$row['id']."'>
    <input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'>
    <div class='form-group'>
    <label for='message' class='col-lg-2 control-label'>Comment:</label>
    <div class='col-lg-10'>
    <textarea name='message' placeholder='Write your comment...' class='form-control' rows='4'></textarea>
    </div></div><br>
    <div class='form-group'>
    <div class='col-lg-10 col-lg-offset-2'>
    <button name='commentSubmit' type='submit' class='btn btn-primary'>Comment</button>
    </div>
    </div>
    </form>";

    getComments($conn);

?>

警告:当使用
mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
数据直接放入查询中,如果有人试图利用您的错误,这可能非常有害。我不确定您为什么要在表中硬插入
id
。通常,这些值是自动生成的。这是对其他表ID的引用吗?该ID调用页面中帖子的ID,以便我可以显示帖子的相对注释。这是错误的,我非常确定
action='”。setComments($conn)。“
开始
setComments()
不返回任何内容action属性应该是PHP脚本的名称,如
somescript.PHP
function setComments($conn) {
    if (isset($_POST['commentSubmit'])){
        $users = $_POST['users'];
        $date = $_POST['date'];
        $message = $_POST['message'];
        $id = $_POST['id'];

        $sql = "INSERT INTO comments (users, date, message, id) VALUES  ('$users', '$date', '$message', '$id')";
        $result = $conn->query($sql);
    }
}

function getComments($conn) {
    $id = intval($_POST['id']);
    $sql = ("SELECT * FROM comments WHERE id = $id ORDER BY cid DESC");
    $result = $conn->query($sql);
    while($row = $result->fetch_assoc()) {
        echo "<div class='comment-box'><p>";
            echo $row['users']."<br>";
            echo $row['date']."<br>";
            echo nl2br($row['message']);
        echo "</p>
        </div>";
    }
}