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。相反,您应该与或一起使用。