在上一篇随笔中已经将如何发布动态呈现了,那么现在来看一下剩下的评论动态、回复评论、删除动态和评论功能,这几个功能会有点绕~~~
一、思路如下:
(1)你发表动态之后,会有人评论这一条动态,当评论之后,你也会回复该评论;(此处评论要单独一张表,回复也要单独一张表)
(2)删除动态:会将动态连同评论、回复全部删除;删除评论:只会删除该条评论
二、在写代码之前,我还是想把流程说一遍:
(1)发表动态—评论—回复—再回复
(2)将上边的流程细化,我先在纸上写出,再上传,码字不能表达清楚(注意的是,我想要的功能的实现,并不是一模一样的哈)
三、还是先将代码分块解释,最后将主页面代码完全附上(含上一篇)
在上一篇中已经实现发布动态、弹出评论框,那么现在接着向下走:
分别看一下qqfriends,qqdongtai,qqpinglun,qqhuifu表,这是初始状态:
先以用户李四登录,由数据库qqfriends表中知道,李四的好友是zhangsan, 和zhaoliu,那么他的空间中显示的好友动态如下:
与上一篇相比,在这一篇中,谁登录的我用中文显示的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
session_start();
$uid = "" ;
if ( empty ( $_session [ "uid" ]))
{
header( "location:login.php" );
exit ;
}
$uid = $_session [ "uid" ];
require "../db.class.php" ;
$db = new db();
$sql = "select name from qqusers where uid='{$uid}'" ;
$name = $db ->strquery( $sql );
echo "欢迎:" . "<span class='qid' yh='{$uid}'>{$name}</span>" ;
?>
|
第一步:评论
1、评论张三的动态,点击“确定”后,就是第二张图了~
2、并将评论的内容写进数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//定义空字符串,容纳评论的id
var code= "" ;
$( ".pl" ).click( function (){
code = $(this).attr( "code" ); //将评论的id重新赋值
})
//将评论写进数据库
$( "#tjpl" ).click( function (){
var plnr = $( ".pldt" ).val();
var plid = code; //取发动态的id
$.ajax({
url: "pl-cl.php" ,
data:{plnr:plnr,plid:plid},
type: "post" ,
datatype: "text" ,
success: function (data){
alert( "评论成功!" );
window.location.href= "main.php" rel= "external nofollow" rel= "external nofollow" rel= "external nofollow" rel= "external nofollow" rel= "external nofollow" ;
}
});
})
|
pl-cl.php页面<br><br>
1
2
3
4
5
6
7
8
9
10
11
|
<?php
require "../db.class.php" ;
$db = new db();
session_start();
$uid = $_session [ "uid" ];
$plnr = $_post [ "plnr" ];
$dtid = $_post [ "plid" ];
$time = date ( "y-m-d h:i:s" , time());
$sql = "insert into qqpinglun values ('','{$dtid}','{$uid}','{$plnr}','{$time}')" ;
$db ->query( $sql ,0);
?>
|
查看qqpinglun表中是不是多了这一条 “为什么开心呢?”:
3、读取评论内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<!--读取评论内容-->
<div id= "dqpl" >
<?php
$sql = "select * from qqpinglun" ;
$arr = $db ->query( $sql );
foreach ( $arr as $v )
{
$sql = "select * from qqdongtai where dtid='{$v[1]}'" ;
$arr2 = $db ->query( $sql );
foreach ( $arr2 as $m )
{
//取发动态的姓名
$sql = "select name from qqusers where uid='{$v[2]}'" ;
$name = $db ->strquery( $sql );
//若果是登录者评论则显示“我”
if ( $v [2]== $uid )
{
$name = "我" ;
}
//获取被评论者的姓名
$sql = "select name from qqusers where uid=(select uid from qqdongtai where dtid='{$v[1]}')" ;
$bpl = $db ->strquery( $sql );
echo "<div class = 'a' ><span class = 'xm' >{ $name }</span>评论<span class = 'xm' >{ $bpl }</span>的动态:{ $m [2]}<div>
<div class = 'b' >{ $v [3]}</div>
<div class = 'c' >发表评论时间:{ $v [4]}</div>
<div class = 'd' ><button class = 'btn btn-primary hf' ids = '{$v[0]}' >回复
</button><span><a href= 'scpl-cl.php?code={$v[0]}' >删除评论</a></span></div>";
}
}
?>
</div>
|
第二步:回复
1、回复刚刚的评论:
2、将回复内容写进数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
//定义空字符串,容纳回复评论的id
var ids= "" ;
$( ".hf" ).click( function (){
ids = $(this).attr( "ids" ); //将评论的id重新赋值
// alert((ids));
$( '#mm' ).modal( 'show' );
})
//将回复评论写进数据库
$( "#tjhf" ).click( function (){
var hfnr = $( ".hfpl" ).val();
// alert(hfnr);
// alert(ids);
$.ajax({
url: "hf-cl.php" ,
data:{hfnr:hfnr,ids:ids},
type: "post" ,
datatype: "text" ,
success: function (data){
alert( "回复成功!" );
window.location.href= "main.php" rel= "external nofollow" rel= "external nofollow" rel= "external nofollow" rel= "external nofollow" rel= "external nofollow" ;
}
});
})
|
hf-cl.php页面
1
2
3
4
5
6
7
8
9
10
|
<?phprequire "../db.class.php" ;
$db = new db();
session_start();
$uid = $_session [ "uid" ];
$hfnr = $_post [ "hfnr" ];
$cid = $_post [ "ids" ];
$time = date ( "y-m-d h:i:s" , time());
$sql = "insert into qqhuifu values ('','{$cid}','{$uid}','{$hfnr}','{$time}')" ;
$db ->query( $sql ,0);
?>
|
查看qqhuifu表,是不是多了一行呢?
3、将回复内容读出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<div id= "dqhf" >
<!--取一次回复-->
<?php
$sql = "select * from qqhuifu where cid in (select cid from qqpinglun)" ;
$arr = $db ->query( $sql );
foreach ( $arr as $a )
{
$sql = "select * from qqpinglun where cid='{$a[1]}'" ;
$arr2 = $db ->query( $sql );
foreach ( $arr2 as $n )
{
//取评论动态的姓名
$sql = "select name from qqusers where uid='{$a[2]}'" ;
$name = $db ->strquery( $sql );
//若果是登录者评论则显示“我”
if ( $a [2]== $uid )
{
$name = "我" ;
}
//获取被回复评论的姓名
$sql = "select name from qqusers where uid=(select uid from qqpinglun where cid='{$a[1]}')" ;
$bpl = $db ->strquery( $sql );
echo "<div class = 'a' ><span class = 'xm' >{ $name }</span>回复<span class = 'xm' >{ $bpl }</span>的评论:{ $n [3]}<div>
<div class = 'b' >{ $a [3]}</div>
<div class = 'c' >回复时间:{ $a [4]}</div>
<div class = 'd' ><button class = 'btn btn-primary hf' ids = '{$a[0]}' >回复
</button><span><a href= 'schf-cl.php?code={$a[0]}' >删除回复</a></span></div>";
}
}
?>
</div>
|
回复内容已经显示了:
第三步:删除
1、删除动态:(含评论和回复)
scdt-cl.php
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
$code = $_get [ "code" ];
require "../db.class.php" ;
$db = new db();
$sql = "delete from qqdongtai where dtid='{$code}'" ;
$db ->query( $sql ,0);
$sql2 = "delete from qqpinglun where dtid='{$code}'" ;
$db ->query( $sql2 ,0);
$sql3 = "delete from qqhuifu where cid=(select cid from qqpinglun where dtid='{$code}')" ;
$db ->query( $sql3 ,0);
header( "location:main.php" );
?>
|
2、删除评论:(含回复)
scpl-cl.php
1
2
3
4
5
6
7
8
9
10
|
<?php
$code = $_get [ "code" ];
require "../db.class.php" ;
$db = new db();
$sql2 = "delete from qqpinglun where cid='{$code}'" ;
$db ->query( $sql2 ,0);
$sql3 = "delete from qqhuifu where cid='{$code}'" ;
$db ->query( $sql3 ,0);
header( "location:main.php" );
?>
|
3、删除回复:(只自己)
schf-cl.php
1
2
3
4
5
6
7
8
9
10
|
<?php
$code = $_get [ "code" ];
require "../db.class.php" ;
$db = new db();
$sql2 = "delete from qqpinglun where cid='{$code}'" ;
$db ->query( $sql2 ,0);
$sql3 = "delete from qqhuifu where cid='{$code}'" ;
$db ->query( $sql3 ,0);
header( "location:main.php" );
?>
|
关于删除就不依次试了~~~注意包含关系就好了
主页面全部代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|