这是用纯php做的评论回复功能
因为是评论功能,所以第一就是先要怎么发表评论(这里没有权限的限制)
一、数据库
建立两张表,一是pinglun表;二是huifu表
二、建立好数据库后就开始写评论了
(1)写一个文本域用来显示评论的内容
(2)写一个按钮,让文本域中的内容写入数据库
1
2
3
4
5
|
< form action="chuli.php" method="post"> <!--这个表单,用来提交文本域中的内容到处理页面的--> < input type="text" hidden="hidden" value="张三" name="uid" /> <!--因为没有权限,这里给了一个默认值--> < textarea name="content" ></ textarea > <!--评论显示的地方--> < input type="submit" value="评论" /> <!--单击评论提交这些内容进处理页面--> </ form > |
下面是这个数据的处理页面,写入数据库
1
2
3
4
5
6
7
8
9
10
11
|
<?php include ( "DBDA.class.php" ); //调用数据库类 $db = new DBDA(); $uid = $_POST [ "uid" ]; //传过来的uid $content = $_POST [ "content" ]; //传过来的评论内容 $time = date ( "Y-m-d H:i:s" ); //当前的时间 //写入数据库中的表里 $sql = "insert into pinglun values('','{$uid}','{$content}','{$time}')" ; $db ->query( $sql ,0); header( "location:index.php" ); //返回主页面 |
效果图如下显示:
(3)写入数据后进行数据的显示,查询数据库就好了
注意:因为要回复评论的数据,所以在显示数据的时候要进行回复按钮的遍历显示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php include ( "DBDA.class.php" ); //调用数据库类 $db = new DBDA(); //造新对象 $sql = "select * from pinglun " ; //查询数据 $arr = $db ->Query( $sql ); //执行语句 foreach ( $arr as $v ) { //回复按钮这里因为要提交他的code号,所以在里面加了一个表单 echo "<tr> <td>{ $v [0]}</td><br> <td>{ $v [1]}</td><br> <td>{ $v [2]}</td><br> <td>{ $v [3]}</td><br> <form action= 'chuli1.php?id={$v[0]}' method= 'post' ><textarea name= 'comment' ></textarea> <input type= 'submit' name= 'hui' value= '回复' /> </form> <tr>";<br> //回复内容的显示 } ?> |
显示出评论的内容,如下:
(4)回复按钮的功能实现
文本域中就是回复的内容提交给处理页面,而且将代号传到处理页面
1
2
3
4
|
<form action= 'chuli1.php?id={$v[0]}' method= 'post' > <textarea name= 'comment' ></textarea> <input type= 'submit' value= '回复' /> </form> |
处理页面的处理数据库,将回复的内容添加到数据库的表中
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php include ( "DBDA.class.php" ); $db = new DBDA(); $id = $_GET [ "id" ]; //将点击回复的评论id传过来 $comment = $_POST [ "comment" ]; //回复文本域中的内容 $uid = "李四" ; $time = date ( "Y-m-d H:i:s" ); $sql = "insert into huifu values('','{$id}', '{$uid}','{$time}','{$comment}')" ; $db ->query( $sql ,0); header( "location:index.php" ); |
执行这个回复功能查看效果,能写入数据库。
(5)回复内容的展示
这样也是通过查询数据库来显示回复内容,这里要显示在循环里面
1
2
3
4
5
6
7
8
9
10
11
|
$hf = new DBDA(); $sql = "select * from huifu where jieshouid={$v[0]}" ; //查询回复表中的id和传过去的id是不是一样的 $arr = $hf ->Query( $sql ); foreach ( $arr as $v ) { //显示的回复表中的相应内容 echo " <div>{ $v [2]}</div> <div>{ $v [3]}</div> <div>{ $v [4]}</div>"; } |
通过上面的整体编写,展示出最后的结果,没有样式的编写,所以最后是这样的结果: