我为游戏创建了一个包含帖子或“交易”的数据库。这是一种人们可以发布他们的优惠的论坛,就像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>";
}
?>
答案 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']
的内容。