ホームページ  >  記事  >  バックエンド開発  >  高度な PHP プログラミング: 複数の記事に対する Like 関数の設計と実装

高度な PHP プログラミング: 複数の記事に対する Like 関数の設計と実装

WBOY
WBOYオリジナル
2024-02-28 08:03:03557ブラウズ

高度な PHP プログラミング: 複数の記事に対する Like 関数の設計と実装

PHP 開発者として、私たちは Web サイトやアプリケーションに同様の関数を追加する必要性によく遭遇します。この記事では、高度な PHP プログラミングを通じて複数記事のような関数を設計および実装する方法を紹介し、具体的なコード例を示します。

1. 機能要件の分析

複数記事にいいねする機能を設計する前に、まず機能要件を明確にする必要があります。ウェブサイトに複数の記事を投稿し、各記事に「いいね!」を付けます。

    ユーザーが各記事に「いいね!」できるのは 1 回だけです。ユーザーがすでに「いいね!」を付けている場合、再度「いいね!」することはできません。
  1. ユーザーは各記事に「いいね!」をした人の数を確認したり、「いいね!」をキャンセルしたりできます。
  2. 2. データベース設計
いいね機能を実装するには、ユーザーのいいね情報をデータベースに保存する必要があります。次に、類似情報を保存するための単純なデータベース テーブルを設計します。

CREATE TABLE likes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    article_id INT,
    user_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

上のテーブルでは、類似レコードの ID、記事 ID、ユーザー ID、作成時刻を保存します。

3. ページデザイン

複数の記事を含むページを作成し、各記事の下にいいねボタンを表示します。ユーザーが「いいね!」ボタンをクリックすると、AJAX リクエストを通じて「いいね!」情報がバックエンドに送信されます。

以下は簡単なページ デザインの例です:

<!DOCTYPE html>
<html>
<head>
    <title>多篇文章点赞功能</title>
</head>
<body>
    <div>
        <h1>文章标题1</h1>
        <p>文章内容1</p>
        <button class="like-btn" data-article-id="1">点赞</button>
    </div>
    <div>
        <h1>文章标题2</h1>
        <p>文章内容2</p>
        <button class="like-btn" data-article-id="2">点赞</button>
    </div>
</body>
</html>

4. PHP バックエンドの実装

PHP バックエンドでは、AJAX リクエストを受信して​​処理するコードを記述します。 like関数のロジック。以下は簡単な PHP コードの例です:

<?php
require('db.php'); // 连接数据库

if ($_POST['action'] == 'like') {
    $article_id = $_POST['article_id'];
    $user_id = 1; // 假设用户id为1

    $sql = "SELECT * FROM likes WHERE article_id = $article_id AND user_id = $user_id";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) == 0) {
        $sql = "INSERT INTO likes (article_id, user_id) VALUES ($article_id, $user_id)";
        mysqli_query($conn, $sql);
        echo "点赞成功";
    } else {
        echo "您已经点赞过了";
    }
}
?>

5. フロントエンド AJAX リクエスト

最後に、「いいね!」をクリックして送信された AJAX リクエストを処理するフロントエンド JS コードを記述する必要があります。ボタン。以下は簡単な JS コードの例です。

document.querySelectorAll('.like-btn').forEach((btn) => {
    btn.addEventListener('click', function() {
        const articleId = this.getAttribute('data-article-id');

        fetch('like.php', {
            method: 'POST',
            body: JSON.stringify({action: 'like', article_id: articleId})
        })
        .then(response => response.text())
        .then(data => {
            alert(data);
        })
        .catch(error => console.error('Error:', error));
    });
});

上記の手順を通じて、複数の記事に対して簡単な like 関数を実装できます。ユーザーが「いいね!」ボタンをクリックすると、バックエンドは AJAX リクエストを受信し、ユーザーがすでに「いいね!」したかどうかを確認して、データベース レコードを更新します。

この記事が、高度な PHP プログラミングにおける同様の関数の設計と実装に役立つことを願っています。これは単なる例であり、実際のアプリケーションではより複雑なロジックと最適化が必要な場合があり、開発者によるさらなる改善と拡張が必要になる場合があります。

以上が高度な PHP プログラミング: 複数の記事に対する Like 関数の設計と実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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