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"); //回到主页面 }
最终结果图: