Home >Backend Development >PHP Problem >How to implement the like and cancel function in php
php method to implement the like cancellation function: first determine whether the user likes it; then load different html based on whether the user likes it; then call different methods to increase or decrease the database.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
How does php implement the like and cancel function?
php mysql ajax partial like/cancel like function, each account only likes once
Record the like users for each like, and To count the number of likes, first determine whether the user has liked it. Depending on whether you like it or not, load different html and call different methods. If you have liked it, the liked html will be displayed. If you have not liked it, the liked html will be displayed. If not liked, the unliked html will be displayed. Perform like operations
For different operations, increase or decrease the database. At the same time, add or delete records for the likes of different users. By controlling the background of different buttons, you can display different effects. By recording the relationship between the user IDs and like IDs of different users, restrictions on different likes can be implemented.
Effect Demonstration
When the user ID is 1, like it, and the number of likes is increased by 1
Change the user ID, when When the id is 2, user 1 has already liked it, and the number of likes is increased by 1 based on the likes of user 1
database
database , divided into two data tables. One is used to count the number of likes, and the other is used to record the likes of different users.
Details of the two data tables
Connect to the database
$con = new mysqli('localhost','root','','test'); if (!$con) { die('连接数据库失败,失败原因:' . mysqli_error()); }else { // echo "连接成功"; }
Determine whether the user likes or not (operation page)
Extract information from the database
//假设用户编号为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);
Judge whether the user likes it, and output different 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 style
#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; }
The ajax method called
Pass the required data, zanId and uId are passed here. Remember to introduce the jq file to like
function zan() { $.ajax({ type:"POST", url:"./likeSever.php", data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, success:function(text){ $("#dolikeDIV").html(text); } }); }
Cancel likes
function zanDel() { $.ajax({ type:"POST", url:"./disSever.php", data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()}, success:function(text){ $("#dolikeDIV").html(text); } }); }
Processing code
Points Praise processing
//更新赞总数的数据 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;
Cancellation of likes
//更新赞总数的数据 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;## 点 赞 赞 赞 赞 赞 赞 赞 赞 赞 赞 赞
#Recommended learning: "
PHP Video Tutorial"
The above is the detailed content of How to implement the like and cancel function in php. For more information, please follow other related articles on the PHP Chinese website!