Home > Backend Development > PHP Tutorial > Learn php+mysql+ajax to partially refresh the like/cancel like function

Learn php+mysql+ajax to partially refresh the like/cancel like function

coldplay.xixi
Release: 2023-04-09 12:58:01
forward
2478 people have browsed it

Learn php+mysql+ajax to partially refresh the like/cancel like function

Record users who like each like, and count the number of likes
First determine whether the user likes or not. Load different html and call different methods depending on whether it is liked or not

Liked

If it has been liked Like, display the liked html, and cancel the like operation

Related learning recommendations:php programming(video)

Not liked

If not liked, display the unliked html and perform the like operation

For different operations , to 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

Learn php+mysql+ajax to partially refresh the like/cancel like function

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 user 1’s likes

Learn php+mysql+ajax to partially refresh the like/cancel like function

database

The database is 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

Learn php+mysql+ajax to partially refresh the like/cancel like function

Connect to the database

$con = new mysqli('localhost','root','','test');
	if (!$con)
	{
	 die('连接数据库失败,失败原因:' . mysqli_error());
	}else {
	 // echo "连接成功";
	}
Copy after login

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);
Copy after login

Judge whether the user likes it and output different 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;
 ?>
Copy after login

css style

#dolike, #donolike 
{ 
 width:30px;
 height:30px; 
 margin-left:20px;
 float:left;}
#donolike 
{
background:url(./images/noLearn php+mysql+ajax to partially refresh the like/cancel like function); 
background-size:30px 30px; 
}
#dolike
{
background:url(./images/Learn php+mysql+ajax to partially refresh the like/cancel like function);
 background-size:30px 30px; 
 }
Copy after login

The ajax method called

passes the required data, which is passed here When zanId and uId
remember to introduce the jq file
Like

function zan()
{
	$.ajax({
		type:"POST",
		url:"./likeSever.php",
		data:{&#39;zanId&#39;:$("#zanId").val(),&#39;uId&#39;:$("#uId").val()},
		success:function(text){
			$("#dolikep").html(text);
		}
	});
	
}
Copy after login

Cancel like

function zanDel()
{
	$.ajax({
		type:"POST",
		url:"./disSever.php",
		data:{&#39;zanId&#39;:$("#zanId").val(),&#39;uId&#39;:$("#uId").val()},
		success:function(text){
			$("#dolikep").html(text);
		}
	});
	
}
Copy after login

Processing code

Like 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[&#39;count&#39;];
 
 //更改输出的html
 $show="";
 $show=<<<html
 <button id="dolike" οnclick="zanDel()"></button>
		<span id="zan">$countZan</span>
html;
 echo $show;
Copy after login

Cancel like processing

//更新赞总数的数据
 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[&#39;count&#39;];
 
 //更新html
 $show="";
 $show.=<<<html
 <button id="donolike" οnclick="zan()"></button>
		<span id="zan">$countZan</span>
html;
Copy after login

like的PICTURES
The picture was drawn by myself, it’s a bit unsightly

Learn php+mysql+ajax to partially refresh the like/cancel like functionnoLearn php+mysql+ajax to partially refresh the like/cancel like function


The above is the detailed content of Learn php+mysql+ajax to partially refresh the like/cancel like function. For more information, please follow other related articles on the PHP Chinese website!

source:jb51.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template