我正在为学校做一个项目,它与Instagram有些相似。 因此,您可以在时间轴上发布照片,然后其他用户就可以对此照片发表评论。
此评论选项已成功完成:您可以发表评论,评论会进入数据库。
评论classe:PHP代码
public function __set($p_sProperty, $p_vValue)
{
switch($p_sProperty)
{
case "Comment":
$this->m_sComment = $p_vValue;
break;
}
}
public function __get($p_sProperty)
{
$vResult = null;
switch($p_sProperty)
{
case "Comment":
$vResult = $this->m_sComment;
break;
}
return $vResult;
}
public function Save() {
$conn = Db::getInstance();
//$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$statement = $conn->prepare('INSERT INTO comment(comment, postID, userID) VALUES(:comment)');
$statement->bindValue(':comment', $this->Comment);
$statement->execute();
}
public function GetRecentActivities($p_iPostID) {
$conn = Db::getInstance();
$allComments = $conn->query("SELECT * FROM comment ORDER BY id DESC;");
return $allComments;
}
}
但现在的问题是: *现在每张贴在一张照片上的评论,而不是特定的帖子? 在帖子的URL中,我发送一个特定的POSTID。 http://i.stack.imgur.com/IkJGL.png 如何才能将评论仅放在具有正确POSTID的帖子上?
答案 0 :(得分:0)
在答案中,我假设您使用GetRecentActivities
来获取帖子的评论。
我注意到你没有在数据库中设置postID
字段,为什么会这样? postID
字段将帮助您将帖子映射到评论。没有它,您(和SQL)无法确定写入评论的上下文。我们确定您知道如何将postID
添加到您提供的INSERT
声明中,但仅供参考:
$stmt = $conn->prepare("INSERT INTO comments (comment, postID) VALUES (:comment, :postID)");
$stmt->bindValue(':comment', $this->Comment);
$stmt->bindValue(':postID', $this->PostID);
$stmt->execute();
在您调用SELECT * FROM comment ORDER BY id DESC;
的SQL中,您可以向"过滤"添加WHERE
子句。返回的数据。在您的情况下,这将是语法:
SELECT * FROM comment WHERE postID = <post_id> ORDER BY id DESC;
有关您可以在http://dev.mysql.com/doc/refman/5.7/en/select.html
SELECT
声明中传递的内容的详细信息