每条帖子的评论

时间:2017-05-28 01:08:10

标签: php mysql forms

我为游戏创建了一个包含帖子或“交易”的数据库。这是一种人们可以发布他们的优惠的论坛,就像Reddit一样。我希望用户能够回复每个帖子(例如,还价还是只是简单评论一下)。在我的数据库中,我有一个包含所有帖子的表格,以及一个包含回复/评论的表格。在评论部分,我有一个名为“post_id”的列,因此您可以看到哪些评论与哪些帖子相关,也可以回显评论。但是,我不知道如何使用PHP函数“调用”该特定帖子的id。以下是我的代码,有人可以帮忙吗? 这是帖子的代码:(trades.php)

    <?php
session_start();
?>

<?php
include ("databaseconnectie.php");
$query = $db->prepare("SELECT * FROM posts WHERE id = " . $_GET['id']);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
foreach($result as &$data) {
echo "Title: " . $data['title'] . "<br>";
echo "Submitted by: " . $data['usern'] . "<br>";
echo "Date: " . $data['datum'] . "<br>";
echo "Message: " . $data['content'] . "<br><br>";
}
?>

<a href="trades.php">Back to the trades</a><hr>

<form method="post" action="">
<textarea type="text" name="comment" cols="50" rows="8" maxlength="200" placeholder="Enter a comment"></textarea>
<br>
<input type="submit" name="send" value="Send"> 
</form> <hr>

<?php
date_default_timezone_set('America/Curacao');
include ("databaseconnectie.php");
$a = $_SERVER['PHP_SELF'];
$pee = explode("=", $a);

if(isset($_POST['send'])) {
if(empty($_POST['comment'])) {
echo "No comment <br><br>";
} else {
if(isset($_SESSION['on'])) {
    $usern = $_SESSION['on'];
    $datum = date('YmdHis');
    $content = $_POST['comment'];
    $add = $db->prepare("INSERT INTO replies(content,usern,datum,post_id) 
VALUES(:content, :usern, :datum, :post_id)");
        $add->bindParam("usern", $usern);
        $add->bindParam("content", $content);
        $add->bindParam("datum", $datum);
        $add->bindParam("post_id", $pee['1']);
        $add->execute();
        } else {
header("Location: signin.php");
}
}
}


     $show = $db->prepare("SELECT * FROM replies WHERE id=:id ORDER BY datum 
DESC");
     $show->bindParam("id", $pee['1']);
     $show->execute();
     while($result = $show->fetch(PDO::FETCH_ASSOC)){
echo '<p><b>' . $result['usern'] . '</b>' . " " . '<i>' . $result['datum'] . 
'</i></p>';
echo '<p>' . $result['content'] . '</b>';
echo "<hr>";
}
?>

1 个答案:

答案 0 :(得分:0)

您可以使用与获取帖子相同的方法。

$query = $db->prepare("SELECT * FROM replies WHERE post_id = " . $_GET['id']);

修改

如果要在特定帖子中插入新评论,可以修改代码中的以下行。

$add = $db->prepare("INSERT INTO replies(content,usern,datum,post_id) VALUES(:content, :usern, :datum, :post_id)");
$add->bindParam("usern", $usern);
$add->bindParam("content", $content);
$add->bindParam("datum", $datum);
$add->bindParam("post_id", $_GET['id']);    // This line is different

我不太了解原始代码中$pee['1']的内容。