首頁 > 後端開發 > PHP問題 > php如何實現按讚

php如何實現按讚

coldplay.xixi
發布: 2023-03-07 15:32:01
原創
3506 人瀏覽過

php實作讚的方法:先取得到文章id,程式碼為【var id=$("#vote").attr('rel')】;然後按讚成功後刷新頁面更新新的按讚次數,代號為【window.location.reload()】。

php如何實現按讚

php實作讚的方法:

最近在做一個影片網站,需要實作影片的讚功能,我是結合ajax和資料庫實現的,資料庫的格式為有四個字段:文章id,贊,踩,ip。因為需要一個ip只能按讚一次,所以需要一個ip字段存儲點讚的ip,這樣便於判斷該ip是否已經點讚過了;

我將點讚和踩的圖片做成兩個按鈕;具體程式碼如下:

<button style="margin-left:4px" id="vote" rel="<?php echo 文章id;?>">
<img src="点赞图片路径" alt="赞">
<span style="position:absolute;margin-top:6px;margin-left:2px;font-size:20px">
<span style="position:absolute;margin-top:-2px;margin-left:6px;font-size:20px">
<?php if(!$vnum){echo 0;}else{ echo 点赞次数;} ?>
</span>
</button>
登入後複製
<button style="margin-left:38px;margin-top:1px;position:absolute" id="dvote" rel="<?php echo 文章id;?>">
<img src="踩图片路径" alt="踩" >
<span style="position:absolute;margin-top:2px;margin-left:6px;font-size:20px">
<?php if(!$dnum){echo 0;}else{ echo 踩次数;} ?>
</span></button>
登入後複製

js程式

<script type="text/javascript">
$(function(){
var id=$("#vote").attr(&#39;rel&#39;);//获取到文章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();
})
})
})
</script>
登入後複製

我是用ci框架寫,所以在news.php下面的vote方法和dvote方法代表的是讚和踩,具體程式碼如下

public function vote(){
$id=$_GET[&#39;id&#39;];
$ip=getIP();
$getdata=$this->data_model;
$data=$getdata->get_vote_ip($id,$ip);
$msg="";
if(empty($data[&#39;ip&#39;]) || !$data[&#39;ip&#39;]){
  $data=array(&#39;nid&#39;=>$id,&#39;vote&#39;=>1,&#39;ip&#39;=>$ip);
  $re=$getdata->insert_vote($data);
  $msg.="点赞成功";
}else{
  $msg.="一个ip只能操作一次";
}
echo $msg;
}
public function dvote(){
$id=$_GET[&#39;id&#39;];
$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=&#39;{$id}&#39; and ip=&#39;{$ip}&#39;");
// $data=$query->result_array()[0];
// return $data;
// }
$msg="";
if(empty($data[&#39;ip&#39;]) || !$data[&#39;ip&#39;]){
  $data=array(&#39;nid&#39;=>$id,&#39;dvote&#39;=>0,&#39;ip&#39;=>$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=&#39;{$id}&#39;");
$data=$query->result_array();
return $data;
}
登入後複製

取得資訊回傳到  控制器裡面將讚和踩的資訊循環分別存入資料庫然後分別計算新的陣列長度就可以取得讚和踩的次數了,這樣的再html頁面輸出就可以了

相關免費學習推薦:php程式設計(影片)

#

以上是php如何實現按讚的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板