記錄每個讚的讚用戶,以及對讚的數量統計
首先判斷用戶是否按讚。根據是否按讚,載入不同的html,呼叫不同的方法
##如果已讚,顯示已按讚的html,進行取消按讚操作
#相關學習推薦:php程式設計(影片)
未按讚
如果未按讚,顯示未按讚的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
<p class="dolikep" id="dolikep">
<button id="dolike" οnclick="zanDel()"></button>
<span id="zan">$countZan</span>
</p>
html;
}
//没点赞
else
{
$showZan.=<<<html
<p class="dolikep" id="dolikep">
<button id="donolike" οnclick="zan()"></button>
<span id="zan">$countZan</span>
</p>
html;
}
echo $showZan;
?>
#dolike, #donolike { width:30px; height:30px; margin-left:20px; float:left;} #donolike { background:url(./images/no學習php+mysql+ajax 局部刷新按讚/取消按讚功能); background-size:30px 30px; } #dolike { background:url(./images/學習php+mysql+ajax 局部刷新按讚/取消按讚功能); background-size:30px 30px; }
傳遞所需的數據,這裡傳遞的時zanId 和uId記得引入jq檔案
按讚function zan()
{
$.ajax({
type:"POST",
url:"./likeSever.php",
data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()},
success:function(text){
$("#dolikep").html(text);
}
});
}
function zanDel() { $.ajax({ type:"POST", url:"./disSever.php", data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, success:function(text){ $("#dolikep").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" οnclick="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" οnclick="zan()"></button> <span id="zan">$countZan</span> html;
圖片自己畫的,有點不太美觀
以上是學習php+mysql+ajax 局部刷新按讚/取消按讚功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!