ホームページ  >  記事  >  バックエンド開発  >  PHP開発:記事風機能の実装方法

PHP開発:記事風機能の実装方法

王林
王林オリジナル
2023-09-20 14:24:301199ブラウズ

PHP開発:記事風機能の実装方法

PHP 開発: 記事の like 関数を実装する方法、具体的なコード例が必要です


はじめに:

現代のソーシャル ネットワークや Web アプリケーションでは、like 関数が使用されます。すでに一般的なソーシャル インタラクション機能となっています。ニュース、Weibo、ブログ、コミュニティ フォーラムのいずれであっても、ユーザーはコンテンツに「いいね!」をすることで、そのコンテンツに対する愛情やサポートを表現できます。この記事では、PHP を使用して記事のような関数を開発および実装する方法と、具体的なコード例を紹介します。


1. データベース構造の設計

記事のような機能を実装する前に、まずデータベース構造を設計する必要があります。 2 つのテーブルを作成できます。1 つは記事情報を格納し、もう 1 つは同様の情報を格納します。

  1. Articleテーブル(記事)
  2. フィールド:
  3. id: 記事ID(主キー)
  4. title: 記事タイトル
  5. content : 記事内容

  6. いいねテーブル(いいね)
  7. フィールド:
  8. id: いいねID(主キー)
  9. article_id: いいねした記事ID
  10. user_id: like ユーザーの ID


2. like 機能を実装するバックエンド ロジック

like 機能を実装するバックエンド ロジックには、主に「いいね」の追加と「いいね」のキャンセルの 2 つの部分が含まれます。 。

  1. いいねを追加する
  2. ユーザーが記事の「いいね!」ボタンをクリックすると、バックエンドは次の操作を実行する必要があります。
  • ユーザーが記事の「いいね!」ボタンをクリックしたかどうかを判断するはすでに気に入っています この記事を読んだ後、いいねテーブルをチェックして、関連するレコードがあるかどうかを判断できます。
  • ユーザーがすでに記事を気に入っている場合、アクションは実行されません。
  • ユーザーが記事を気に入っていない場合は、「いいね!」テーブルに新しいレコードを挿入します。

PHP コード例:
    <?php
    // 连接数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 获取文章ID和用户ID
    $articleId = $_POST['articleId'];
    $userId = $_POST['userId'];
    
    // 查询点赞表
    $query = "SELECT * FROM like WHERE article_id = $articleId AND user_id = $userId";
    $result = mysqli_query($conn, $query);
    
    // 判断是否已经点赞过该文章
    if (mysqli_num_rows($result) > 0) {
        // 用户已经点赞过该文章,不执行任何操作
    } else {
        // 用户没有点赞过该文章,插入一条新记录
        $insertQuery = "INSERT INTO like (article_id, user_id) VALUES ($articleId, $userId)";
        mysqli_query($conn, $insertQuery);
    }
    
    // 关闭数据库连接
    mysqli_close($conn);
    ?>

  1. いいねをキャンセル
  2. ユーザーがいいねをキャンセルすると、バックエンドは次の操作を実行する必要があります:
  • ユーザーが記事を気に入ったかどうかを判断するには、like テーブルをクエリして関連レコードがあるかどうかを確認します。
  • ユーザーが記事を気に入っていない場合、アクションは実行されません。
  • ユーザーがすでに記事に「いいね!」を付けている場合は、「いいね!」テーブルの関連レコードを削除します。

PHP コード例:

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

// 获取文章ID和用户ID
$articleId = $_POST['articleId'];
$userId = $_POST['userId'];

// 查询点赞表
$query = "SELECT * FROM like WHERE article_id = $articleId AND user_id = $userId";
$result = mysqli_query($conn, $query);

// 判断是否已经点赞过该文章
if (mysqli_num_rows($result) > 0) {
    // 用户已经点赞过该文章,删除相关记录
    $deleteQuery = "DELETE FROM like WHERE article_id = $articleId AND user_id = $userId";
    mysqli_query($conn, $deleteQuery);
} else {
    // 用户没有点赞过该文章,不执行任何操作
}

// 关闭数据库连接
mysqli_close($conn);
?>

3. like 関数のフロントエンド実装

フロントエンド ページに Like ボタンを追加し、バックエンドと対話します。 . Ajax を使用して非同期リクエストを送信できます。

HTML コード例:

<button class="like-button" data-article-id="1">点赞</button>

JavaScript コード例:

// 点赞按钮点击事件
$(".like-button").on("click", function() {
    var articleId = $(this).data("article-id");
    var userId = 1; // 假设用户ID为1

    // 发送异步请求到后端
    $.ajax({
        type: "POST",
        url: "like.php",
        data: { articleId: articleId, userId: userId },
        success: function(response) {
            // 更新点赞按钮状态
            $(this).addClass("active");
            alert("点赞成功!");
        }
    });
});

IV. まとめ

上記の実装手順により、PHP 開発関数で記事のような記事を実現できます。バックエンド ロジックの作成からフロントエンド インタラクションの実装まで、ユーザーが記事を気に入ったり、インターフェイスに関するフィードバックを取得したりする効果を実現できます。この記事が、PHP 開発における同様の関数の実装に役立つことを願っています。


特記事項:

この記事のコード例は参考用であり、コードのセキュリティとパフォーマンスを確保するために、実際の開発プロセスでは特定の条件に応じて適切な修正や最適化を行ってください。 ###

以上がPHP開発:記事風機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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