• 点赞设计


    需求:对某一个试题 或者 某一个话题 或者 某一个新闻 点赞 ,每个人只能点赞一次,第一次点赞的时候 增加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 备注 为 博客园

  • 相关阅读:
    redis相关
    Ubuntu安装之python开发
    Shell编程实战
    saltstack高效运维
    docker网络
    docker入门
    python学习博客地址集合。。。
    vue+uwsgi+nginx部署路飞学城
    部署你的CRM程序
    Java Netty教程(目录)
  • 原文地址:https://www.cnblogs.com/ailingfei/p/6413031.html
Copyright © 2020-2023  润新知