php實作讚取消功能的方法:先判斷使用者是否按讚;然後依是否按讚,載入不同的html;接著呼叫不同的方法,對資料庫進行增加或減少操作即可。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php怎麼實作讚取消功能?
php mysql ajax 局部讚/取消按讚功能,每個帳號只按讚一次
記錄每個讚的讚用戶,以及對讚的數量統計首先判斷使用者是否按讚。根據是否按讚,載入不同的html,呼叫不同的方法已按讚如果已按讚,顯示已按讚的html,進行取消按讚操作未按讚如果未按讚,顯示未按讚的html,進行按讚操作
對於不同操作,對資料庫進行增加或減少操作。同時對於不同使用者的點贊,進行增加記錄或刪除記錄操作。透過控制不同按鈕的背景,來顯示不同的效果。透過記錄不同使用者的使用者id和讚的id之間的關係,進行不同點讚的限制。
效果示範
當使用者id為1時,進行點贊,按讚數加1
更改使用者id,當當id為2時,用戶1的用戶已進行了點贊,按讚數在用戶1點讚基礎上增加1
資料庫
#資料庫,分為兩個數據表。一個進行點讚數的統計,一個進行不同使用者的按讚記錄。
兩個資料表的詳細資訊
連接資料庫
$con = new mysqli('localhost','root','','test'); if (!$con) { die('连接数据库失败,失败原因:' . mysqli_error()); }else { // echo "连接成功"; }
對使用者是否按讚進行判斷(操作頁面)
對資料庫的資訊進行提取
//假设用户编号为1 $uId="1"; //假设赞编号为1 $zanId="1"; //查找赞id为1的点赞数 $count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); $countResult=mysqli_fetch_array($count); $countZan=$countResult['count']; //查找改用户是否对赞id为1 点赞 $uIdLike=mysqli_query($con, "SELECT * FROM zanRecord WHERE uId=$uId "); $result=mysqli_fetch_array($uIdLike);
對使用者是否按讚進行判斷,並輸出不同的html
//点赞 if (isset($result)) { $showZan.=<<<html <div class="dolikeDIV" id="dolikeDIV"> <button id="dolike" onclick="zanDel()"></button> <span id="zan">$countZan</span> </div> html; } //没点赞 else { $showZan.=<<<html <div class="dolikeDIV" id="dolikeDIV"> <button id="donolike" onclick="zan()"></button> <span id="zan">$countZan</span> </div> html; } echo $showZan; ?>
css樣式
#dolike, #donolike { width:30px; height:30px; margin-left:20px; float:left;} #donolike { background:url(./images/nolike.png); background-size:30px 30px; } #dolike { background:url(./images/like.png); background-size:30px 30px; }
呼叫的ajax方法
傳遞需要的數據,這裡傳遞的時zanId 和uId 記得引入jq檔案讚
function zan() { $.ajax({ type:"POST", url:"./likeSever.php", data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, success:function(text){ $("#dolikeDIV").html(text); } }); }
取消讚
function zanDel() { $.ajax({ type:"POST", url:"./disSever.php", data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, success:function(text){ $("#dolikeDIV").html(text); } }); }
處理程式碼
#讚處理
//更新赞总数的数据 mysqli_query($con,"UPDATE zanCount SET count = count+1 WHERE zanId=$zanId"); //添加一条点赞记录 mysqli_query($con,"INSERT INTO zanRecord(zanId,uId) VALUES($zanId, $uId); "); //查找赞的总数 @$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); @$countResult=mysqli_fetch_array($count); @$countZan=$countResult['count']; //更改输出的html $show=""; $show=<<<html <button id="dolike" onclick="zanDel()"></button> <span id="zan">$countZan</span> html; echo $show;
取消按讚處理
//更新赞总数的数据 mysqli_query($con,"UPDATE zanCount SET count = count-1 WHERE zanId=$zanId"); //添加一条点赞记录 mysqli_query($con,"DELETE FROM zanRecord WHERE zanId=$zanId AND uId=$uId "); //查找赞的总数 @$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); @$countResult=mysqli_fetch_array($count); @$countZan=$countResult['count']; //更新html $show=""; $show.=<<<html <button id="donolike" onclick="zan()"></button> <span id="zan">$countZan</span> html;
按讚的圖片圖片自己畫的,有點不太美觀
#推薦學習:《PHP影片教學》
以上是php怎麼實現讚取消功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!