Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加回复到评论系统_Php_Mysql - Fatal编程技术网

Php 添加回复到评论系统

Php 添加回复到评论系统,php,mysql,Php,Mysql,我想做的是在我的评论系统中添加每一条评论的回复,但我不知道该怎么做。有人能给我演示或解释一下如何添加这个吗 这是我的评论数据库表 id user_id target_id comment date_added ip type 这是我正在使用的函数 public function addMovieComment($movieid, $comment, $user_id, $ip){ $comment = stripslashes(strip_tags($comment)); $c

我想做的是在我的评论系统中添加每一条评论的回复,但我不知道该怎么做。有人能给我演示或解释一下如何添加这个吗

这是我的评论数据库表

id
user_id
target_id
comment
date_added
ip
type
这是我正在使用的函数

public function addMovieComment($movieid, $comment, $user_id, $ip){
    $comment = stripslashes(strip_tags($comment));
    $comment = mysql_real_escape_string($comment);
    $movieid = mysql_real_escape_string($movieid);
    $user_id = mysql_real_escape_string($user_id);
    $ip = stripslashes(strip_tags($ip));
    $ip = mysql_real_escape_string($ip);
    if (!($e = mysql_query("SELECT * FROM comments WHERE target_id='{$movieid}' AND user_id='{$user_id}' AND comment='{$comment}' AND type=2 AND ip='{$ip}'"))) {
        exit(mysql_error());
    }
    if (mysql_num_rows($e) == 0) {
         if (!($e = mysql_query("INSERT INTO comments(target_id,user_id,comment,date_added,type,ip) VALUES('{$movieid}','{$user_id}','{$comment}',NOW(),2,'{$ip}')"))) {
            exit(mysql_error());
        }
    }
}

public function getMovieComments($movieid){
    $movieid = mysql_real_escape_string($movieid);
    if (!($e = mysql_query("SELECT comments.*,users.username, users.avatar FROM comments,users WHERE comments.user_id=users.id AND comments.type=2 AND comments.target_id={$movieid} ORDER BY comments.id DESC"))) {
        exit(mysql_error());
    }
    $comments = array();
    while (mysql_num_rows($e) && ($s = mysql_fetch_array($e))) {
        extract($s);
        $comments[$id]               = array();
        $comments[$id]['comment']    = stripslashes($comment);
        $comments[$id]['user_id']    = $user_id;
        $comments[$id]['username']   = $username;
        $comments[$id]['date_added'] = $date_added;
        $comments[$id]['avatar']     = $avatar;
    }
    return $comments;
}
下面是我如何调用函数来添加和获取注释

if ((@$comment) && (@$addcomment) && (@$_SESSION['loggeduser_id'] && (@$ip))){
    $comm->addMovieComment($mov['id'],$comment,$_SESSION['loggeduser_id'],$ip);
}

$comments = $comm->getMovieComments($mov['id']);
if (!count($comments)){ $comments = ''; $commentcount = 0; } else { $commentcount = count($comments); } 
$smarty->assign("comments",$comments);
$smarty->assign("commentcount",$commentcount);

if ($commentcount==1){
   $smarty->assign("comment_title",$commentcount." comment");
} else {
   $smarty->assign("comment_title",$commentcount." comments");
}

我怎样才能添加这个呢?

这不是一个完整的答案,而是一些提示和技巧

你的电影大概是关于电影的文章,这可能有助于思考附加到更通用对象的注释,而不是像电影这样的特定对象

首先,如果您开始将评论和文章视为对象,那么它将非常有帮助,因此您需要一个评论类和一个文章类。如果你做得好,你可以创建一个CommentView和ArticleView类,它将有效地成为下面模型的视图类

您的Comment类将需要一个add和remove方法,以及其他一些方法。文章也是如此

您的系统还应该有一个用户类,以及一组用户可能拥有或不拥有的权限

拿支笔和纸,想想所有这些对象将如何交互,以及它们在数据库存储方面需要什么

考虑将控制器(系统如何处理来自用户的请求)与模型(系统如何表示为对象/存储在数据库中)和视图(各种项目如何显示)分开


要将其转化为现实,您无论如何都应该有一个控制器::addComment()验证传入数据并创建新注释的例程。注释构造函数应包含在数据库中创建对象的SQL。

为什么不使用Disqs或其他开发良好的注释系统,而不是尝试开发自己的注释系统?回复只是另一条恰好有“父级”的注释。添加“回复到”字段,并将其指向新的“注释”作为回复的记录。有时您喜欢成为核心的挑战,并自己做这件事?:-)mysql函数不再维护,不应在任何新的代码库中使用。它正逐渐被淘汰,取而代之的是更新的API。相反,您应该与或一起使用。