点赞设计
需求:对某一个试题 或者 某一个话题 或者 某一个新闻 点赞 ,每个人只能点赞一次,第一次点赞的时候 增加1 再一次点赞的时候 就取消点赞
设计:
1.用户点赞 必须要登陆才可以,这样就可以获取该用户的uid;
2.设计数据表
被点赞的记录表 ,以试题为例:
question 表
tid --------题目id
question -----问题题目
answer -------问题答案
--------------------------------------------
zan 表
id 主键
tid 被赞的tid
uid 点赞的用户
is_delete 点赞状态 (0点赞,1 取消;默认为0)
3.代码
1 /** 2 * @desc 点赞方法 3 * @author wzh 4 * @version 1.0 5 * @date 2017-02-18 6 * @return int 7 */ 8 public function setZan($uid = 0,$tid = 0){ 9 $uid = (int) $uid; 10 $tid = (int) $tid; 11 if($uid == 0 || $tid == 0){ 12 return false; 13 } 14 15 //先查看该用户是否已经点赞,如果没有点赞 则增加一条记录,如果已经点赞,查看点赞的状态is_delete,如果该值为0 则设置为1,如果为1则设置为0; 16 $sql = "select id,is_delete from zan where uid = '$uid' and tid = '$tid' "; 17 $zanInfo = $db -> getRow($sql); 18 if(empty($zanInfo)){ 19 $insert = array('uid' => $uid,'tid' => $tid); 20 $res = $db -> insert($insert); 21 22 }else{ 23 if($zanInfo['is_delete'] == 1){ 24 $update = array('is_delete' => 0); 25 }else{ 26 $update = array('is_delete' => 1); 27 } 28 $condition = array('id' => $zanInfo['id']); 29 $res = $db -> update('zan',$update,$condition); 30 } 31 if(!$res){ 32 return false; 33 } 34 35 $count = $db -> getCount("select count(*) from zan where tid = $tid and is_delete = 0 "); 36 return $count; 37 38 39 }
4.总结:以上仅仅为解决思路,并不完整;可以再次基础上做扩展;详细交流请qq 646943067 备注 为 博客园
如需详细联系 请加
qq 646943067
微信:q646943067
备注请写 博客园
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix