Home  >  Article  >  Backend Development  >  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
coldplay.xixiforward
2020-08-06 16:17:182419browse

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 "连接成功";
	}

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
  <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;
 ?>

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; 
 }

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);
		}
	});
	
}

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);
		}
	});
	
}

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;

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;

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!

Statement:
This article is reproduced at:jb51.net. If there is any infringement, please contact admin@php.cn delete