ホームページ  >  記事  >  バックエンド開発  >  PHPでいいねとキャンセル機能を実装する方法

PHPでいいねとキャンセル機能を実装する方法

藏色散人
藏色散人オリジナル
2021-07-19 09:56:402498ブラウズ

php メソッドでいいねキャンセル機能を実装します。最初にユーザーが気に入っているかどうかを判断し、次にユーザーが気に入っているかどうかに基づいて別の HTML をロードし、その後別のメソッドを呼び出してデータベースを増減します。

PHPでいいねとキャンセル機能を実装する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php はどのように実装しますか?いいねとキャンセル機能?

php mysql ajax 部分的ないいね/いいねのキャンセル関数、各アカウントは 1 回だけいいね

いいねごとにいいねしたユーザーを記録し、その数をカウントするには「いいね!」を選択するには、まずユーザーが「いいね!」したかどうかを判断します。気に入るかどうかに応じて、別の HTML をロードし、別のメソッドを呼び出します。気に入った場合は、気に入った HTML が表示されます。気に入らなかった場合は、気に入った HTML が表示されます。気に入らなかった場合は、気に入らなかった HTML が表示されます。 htmlが表示されるので、同様の操作を行います

別の操作の場合は、データベースを増減します。同時に、さまざまなユーザーのレコードを追加または削除します。さまざまなボタンの背景を制御することで、さまざまな効果を表示できます。異なるユーザーのユーザーIDといいねIDの関係を記録することで、異なるいいねの制限を実現できます。

効果デモ

ユーザーIDが1の場合、いいねするといいね数が1増加します

PHPでいいねとキャンセル機能を実装する方法

ユーザーIDを1にするといいね数が1増加しますユーザー ID の場合 ID が 2 の場合、ユーザー 1 はすでに「いいね!」を付けており、ユーザー 1 のいいね数に基づいていいねの数は 1 つ増加します。

PHPでいいねとキャンセル機能を実装する方法

データベース

database は 2 つのデータ テーブルに分割されています。 1 つはいいねの数をカウントするために使用され、もう 1 つはさまざまなユーザーのいいねを記録するために使用されます。

2 つのデータ テーブルの詳細

PHPでいいねとキャンセル機能を実装する方法

データベースに接続

$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:{&#39;zanId&#39;:$("#zanId").val(),&#39;uId&#39;:$("#uId").val()},
success:function(text){
$("#dolikeDIV").html(text);
}
});
}

いいねをキャンセル

function zanDel()
{
$.ajax({
type:"POST",
url:"./disSever.php",
data:{&#39;zanId&#39;:$("#zanId").val(),&#39;uId&#39;:$("#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[&#39;count&#39;];
    
    //更改输出的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[&#39;count&#39;];
        
        //更新html
        $show="";
        $show.=<<<html
        <button id="donolike" onclick="zan()"></button>
<span id="zan">$countZan</span>
html;

## 点赞赞赞赞赞赞赞赞赞赞赞赞

PHPでいいねとキャンセル機能を実装する方法

#推奨される学習: 「

PHP ビデオ チュートリアル

以上がPHPでいいねとキャンセル機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。