php评论回复功能

Posted 梦深深处

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php评论回复功能相关的知识,希望对你有一定的参考价值。

这里只实现简单的评论回复功能,并没有设置用户权限,关于权限问题前边的注册登录已经详细的介绍过,所以这里不做赘述:

首先我们要在数据库先建两张表,分别是pinglun表与huifu表:

建立完两张表后,开始写评论模块,首先是建立表单,用文本域显示评论内容,然后用按钮提交到数据库:

<form action="pingchuli.php" method="post">
<input type="text" hidden="hidden" value="menghaoran" name="menghaoran" /><!--因为没有权限,这里给了一个默认值-->
<div><textarea name="content"></textarea></div><br /><!--文本域评论显示的地方-->
<input type="submit" value="评论" />
</form>

然后写评论的处理页面pingchuli.php:

<?php

$menghaoran = $_POST["menghaoran"];//获取用户
$content = $_POST["content"];//获取评论内容
$time = date("Y-m-d H-i-s");//获取当前时间
echo "$time";

require "DBDA.class.php";
$db = new DBDA();
$sql = "insert into pinglun values(\'\',\'{$menghaoran}\',\'{$content}\',\'{$time}\')";
$arr=$db->query($sql,0);
if($arr)
{
    header("location:pinglun.php");    //返回主页面
}

看一下效果:

然后引入封装类,写sql语句查询pinglun表,并遍历出各项数据,然后重点是要在评论后进行回复,所以也要查询huifu表遍历出回复的数据,这里虽然没有用户权限限制,但一定要获取接收人的id:

<?php
require "DBDA.class.php";
$db = new DBDA();
$sql= "select * from pinglun";
$arr = $db->query($sql);
foreach($arr as $v)//遍历出评论表中的数据
{echo"<tr>
        <td>{$v[1]}</td><br>
        <td>{$v[2]}</td><br>
        <td>{$v[3]}</td><br>
        <form action=\'huichuli.php?id={$v[0]}\' method=\'post\'><textarea name=\'coment\' ></textarea>
            <input type=\'submit\' name=\'hui\' value=\'回复\'/>
        </form>
        <tr>";//回复也要遍历出来,而且要用表单包裹起来,因为要用到id

$dc = new DBDA();
$sql = "select * from huifu where jieshouid={$v[0]}";//找到接收者的id
$arr = $dc->query($sql);
foreach($arr as $v)
{
    echo"
    <div style=\'color:red\'>{$v[2]}</div>
    <div style=\'color:red\'>{$v[3]}</div>
    <div style=\'color:red\'>{$v[4]}</div>";
}

}

?>

然后是回复的处理页面huichuli.php:

<?php
$id = $_GET["id"];//将点击回复的评论id传过来
$times = date("Y-m-d H-i-s");//获取当前时间
echo "$times";
$coment = $_POST["coment"];
$libai = "libai";//发送人默认值
require "DBDA.class.php";
$db = new DBDA();
$sql = "insert into huifu values(\'\',\'{$id}\',\'{$libai}\',\'{$times}\',\'{$coment}\')";//将数据添加到数据库中
$arr=$db->query($sql,0);
if($arr)
{
    header("location:pinglun.php");    //回到主页面
}

最终结果图:

 

以上是关于php评论回复功能的主要内容,如果未能解决你的问题,请参考以下文章

PHP实现简单的评论与回复功能还有删除信息

回复技术提问中的一个问题:php如何读取域用户信息? - PHP进阶讨论

博客项目实现文章评论功能(重点是评论回复)

PHP/MySql 选择与回复分组的评论

数据库设计——评论回复功能

场景应用:设计一个论坛的评论回复功能