我们大部分人都发过动态,想必都知道发动态 、回复 评论 、删除 动态的整个过程,那么作为初学者,要模仿这些功能 有点复杂的,最起码表的关系得弄清楚~~
先把思路理一下:
(1)用户 登录 ,用session读取当前用户 ----目的是:该用户 可以发表动态,重点是显示 该用户 好友及他自己发表的动态,并且按发表时间排序。
(2)做个发表动态框实现发表动态功能
(3)显示 该用户 和他好友已经发表对的动态信息,并按发表时间由近到远显示
(4)再每条动态后面做一个评论 按钮和删除 按钮;实现对动态的评论 ,回复 和删除 (斜体部分下一篇 随笔,不然太长了)
需要用到的表:
(1)用户 表:
(2)好友表
(3)动态表
我先将代码 分块解析,最后将主页代码 完整附上,不然弄不清逻辑可能会有点混~~~~
第一步:实现简单的登录
PHP;">
<
Meta charset="UTF-8">
效果 图如下:
(2)login-cl.PHP 页面 :(用session存取用户名 )
PHP;">
strquery($
sql );
var_dump($mm);
if($mm == $pwd && !empty($pwd))
{
$_SESSION["uid"] = $uid;
header("location:main.
PHP ");
}
else{
echo "
用户名 或密码
错误 !";
}
?>
第二步:登录 之后,布局发布动态框
(1)发布之前,判断一下session是否已经取到值,如果没有,返回到登陆页面 ,如果取到值则显示 “欢迎,xx”的字体(后面的姓名均用拼音显示 ,不再读取汉字的姓名)
PHP;">
{$uid}";
?>
(2)
PHP;">
发表动态:
实现的效果 :
第三步:显示 该用户 和他好友已经发表的动态信息,并按发表时间由近到远显示
重点是:
(1)显示 的动态只是登陆的该用户 和他好友的,非好友不显示 --------所以在处理页面 的sql 语句要注意
(2)将读取出来的信息按照发表时间读取,发表时间最近的越在上边
首先:
PHP;">
其次:
PHP;">
//当发表动态时,将动态
内容 写进
数据库 ,并刷新
页面
$("#fb").click(function(){
var dt= $(".xdt").val();
var uid = $(".qid").attr("yh");
$.ajax({
url:"main-cl.
PHP ",data:{dt:dt},type:"POST",dataType:"TEXT",success:function(data){
alert("发表动态成功!");
window.location.href="main.
PHP " rel="external
nofollow " rel="external
nofollow " ;
}
});
})
对应的main-cl.PHP 页面 :
PHP;">
query($
sql ,0);
$
sql = "select * from qqdongtai where uid='{$uid}' or uid in (select uid from qqfriends where fname =(select name from qqusers where uid='{$uid}'))";
//echo $
sql ;
$arr = $db->strquery($
sql );
echo $arr;
?>
然后:
PHP;">
//刷新
页面 时将
内容 读取出来,并按发表时间读出来
$.ajax({
url:"sx-cl.
PHP ",success:function(data){
var hang = data.trim().split("|");
var str="";
for(var i=0;i
发表动态:";
str =str+"
";
}
$("#nr").html(str);
}
});
sx-cl.php页面:
strquery($sql);
echo $arr;
?>
由上面可知:登录用户是lisi,由好友表可以知道,lisi的好友只有zhangsan和zhaoliu,那么显示的动态只能有lisi,zhangsan,和zhaoliu的。现在看一下效果及数据库~~~~
第四步:用bootstrap添加模态框用来评论动态
(1)引入文件:
(2)用模态框做评论效果:
实现效果:(样式比较简陋)
点击“评论”:
到这一步基本就能实现动态的发布和显示好友动态了~~~~未完待续----评论和评论回复见下一篇随笔~~~
主页面全部代码: