在PHP中对特定帖子发表评论

时间:2016-04-26 20:02:36

标签: php

我正在为学校做一个项目,它与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的帖子上?

1 个答案:

答案 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声明中传递的内容的详细信息