php限制点赞,php--点赞功能的实现

最近在做一个视频网站,需要实现视频的点赞功能,我是结合ajax和数据库实现的,数据库的格式为有四个字段:文章id,赞,踩,ip。因为需要一个ip只能点赞一次,所以需要一个ip字段存储点赞的ip,这样便于判断该ip是否已经点赞过了;

我将点赞和踩的图片做成两个按钮;具体代码如下:

赞<?php if(!$vnum){echo 0;}else{ echo 点赞次数;} ?>

踩<?php if(!$dnum){echo 0;}else{ echo 踩次数;} ?>

js程序

$(function(){

var id=$("#vote").attr(‘rel‘);//获取到文章id;

$("#vote").click(function(){

$.get("传到哪个页面?id="+id,function(r){

alert(r);

window.location.reload();//点赞成功后刷新页面更新新的点赞次数

})

})

$("#dvote").click(function(){

$.get("/news/dvote?id="+id,function(r){

alert(r);

window.location.reload();

})

})

})

我是用ci框架写,所以在news.php下面的vote方法和dvote方法代表的是赞和踩,具体代码如下

public function vote(){

$id=$_GET[‘id‘];

$ip=getIP();

$getdata=$this->data_model;

$data=$getdata->get_vote_ip($id,$ip);

$msg="";

if(empty($data[‘ip‘]) || !$data[‘ip‘]){

$data=array(‘nid‘=>$id,‘vote‘=>1,‘ip‘=>$ip);

$re=$getdata->insert_vote($data);

$msg.="点赞成功";

}else{

$msg.="一个ip只能操作一次";

}

echo $msg;

}

public function dvote(){

$id=$_GET[‘id‘];

$ip=getIP();

$getdata=$this->data_model;

$data=$getdata->get_vote_ip($id,$ip);

//get_vote_ip($id,$ip),是在模型里面的查询该ip是否已经点赞过,具体代码 如下

//public function get_vote_ip($id,$ip){

// $query=$this->db->query("select * from 表名 where nid=‘{$id}‘ and ip=‘{$ip}‘");

// $data=$query->result_array()[0];

// return $data;

// }

$msg="";

if(empty($data[‘ip‘]) || !$data[‘ip‘]){

$data=array(‘nid‘=>$id,‘dvote‘=>0,‘ip‘=>$ip);

$re=$getdata->insert_vote($data);

$msg.="踩成功";

}else{

$msg.="一个ip只能操作一次";

}

echo $msg;

}

点赞可以实现以后,就是需要将点赞数据进行更新,首先需要在数据库查询该篇文章所以的点赞信息

//获取点赞信息

public function get_vote($id){

$query=$this->db->query("select * from tx_vote where nid=‘{$id}‘");

$data=$query->result_array();

return $data;

}

获取信息返回到  控制器里面将赞和踩的信息循环分别存入到数据库中然后分别计算新的数组长度就可以获取赞和踩的次数了,这样的再html页面输出就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值