ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して、知識の質問と回答の Web サイトでユーザーの称号とメダルのシステム機能を開発します。

PHP を使用して、知識の質問と回答の Web サイトでユーザーの称号とメダルのシステム機能を開発します。

WBOY
WBOYオリジナル
2023-07-02 15:49:401321ブラウズ

PHP を使用して知識質疑応答 Web サイトのユーザー称号とメダル システム機能を開発する

知識質疑応答 Web サイトでは、ユーザー称号とメダル システムはユーザーの参加を促す重要な機能です。そして貢献してください。ユーザーに特別なタイトルやバッジを与えることで、ユーザーが積極的に質問に答えたり、貴重なコンテンツを投稿したり、他のユーザーが問題を解決できるよう支援したりすることができます。この記事では、PHP プログラミング言語を使用してこの機能を実装します。

まず、ユーザー ID、ユーザー名、称号、メダルなどのユーザー情報を保存するデータベースを作成する必要があります。 MySQL データベースを使用してこの機能を実現できます。以下はデータベース テーブル構造の例です:

CREATE TABLE users (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    title VARCHAR(50) DEFAULT '新手',
    badge VARCHAR(50) DEFAULT '无'
);

次に、ユーザーの称号とメダルのロジックを処理するための PHP ファイルを作成する必要があります。まずデータベースに接続し、ユーザー ID に基づいてユーザーの現在の称号とメダルを取得します。 PHP コードのサンプルを次に示します。

<?php
    // 连接到数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 获取用户ID
    $userId = $_GET['userId'];
    
    // 根据用户ID查询用户信息
    $query = "SELECT * FROM users WHERE id = $userId";
    $result = mysqli_query($conn, $query);
    
    // 检查查询结果是否为空
    if(mysqli_num_rows($result) > 0) {
        // 获取用户信息
        $user = mysqli_fetch_assoc($result);
        
        // 打印用户当前头衔和勋章
        echo "当前头衔:" . $user['title'] . "<br>";
        echo "当前勋章:" . $user['badge'] . "<br>";
    }
    else {
        echo "用户不存在";
    }
    
    // 关闭数据库连接
    mysqli_close($conn);
?>

これで、ユーザーの称号とメダルの情報を取得できました。次に、ユーザーの称号とメダルを表示するページを実装し、ユーザーが称号とメダルの更新を選択できるようにいくつかのボタンを提供する必要があります。例の HTML と JavaScript コードを次に示します。

<!DOCTYPE html>
<html>
<head>
    <title>用户头衔和勋章</title>
</head>
<body>
    <h1>用户头衔和勋章</h1>
    
    <div id="user-info"></div>
    
    <form id="update-form">
        <label for="title">头衔:</label>
        <input type="text" name="title" id="title" placeholder="请输入新的头衔"><br><br>
        
        <label for="badge">勋章:</label>
        <input type="text" name="badge" id="badge" placeholder="请输入新的勋章"><br><br>
        
        <input type="submit" value="更新">
    </form>
    
    <script>
        window.onload = function() {
            // 获取用户ID
            var userId = <?php echo $_GET['userId']; ?>;
            
            // 发送 AJAX 请求来获取用户的头衔和勋章信息
            var xhr = new XMLHttpRequest();
            xhr.open("GET", "get_user_info.php?userId=" + userId, true);
            xhr.onreadystatechange = function() {
                if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
                    // 显示用户的头衔和勋章信息
                    document.getElementById("user-info").innerHTML = xhr.responseText;
                    
                    // 设置表单提交时的操作
                    document.getElementById("update-form").onsubmit = function(e) {
                        e.preventDefault();
                        
                        // 获取新的头衔和勋章
                        var title = document.getElementById("title").value;
                        var badge = document.getElementById("badge").value;
                        
                        // 发送 AJAX 请求来更新用户的头衔和勋章信息
                        var updateXHR = new XMLHttpRequest();
                        updateXHR.open("POST", "update_user_info.php", true);
                        updateXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                        updateXHR.onreadystatechange = function() {
                            if(updateXHR.readyState === XMLHttpRequest.DONE && updateXHR.status === 200) {
                                // 更新用户的头衔和勋章信息后刷新页面
                                location.reload();
                            }
                        };
                        updateXHR.send("userId=" + userId + "&title=" + title + "&badge=" + badge);
                    };
                }
            };
            xhr.send();
        };
    </script>
</body>
</html>

最後に、ユーザーが称号とメダルを更新するためのロジックを処理する PHP ファイルを作成する必要があります。以下は PHP コードの例です。

<?php
    // 连接到数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 获取用户ID、新的头衔和勋章
    $userId = $_POST['userId'];
    $title = $_POST['title'];
    $badge = $_POST['badge'];
    
    // 更新用户的头衔和勋章信息
    $query = "UPDATE users SET title = '$title', badge = '$badge' WHERE id = $userId";
    mysqli_query($conn, $query);
    
    // 关闭数据库连接
    mysqli_close($conn);
?>

上記のコード例を通じて、基本的なユーザー タイトルとメダル システム関数を実装できます。ユーザーはページを通じて自分の称号やメダルを表示および更新できるため、トリビア Web サイトへの活動と参加が増加します。もちろん、これをベースにさらにタイトルやメダルの種類を追加したり、より複雑なロジックや条件判定を追加したりすることもできます。この記事がお役に立てば幸いです!

以上がPHP を使用して、知識の質問と回答の Web サイトでユーザーの称号とメダルのシステム機能を開発します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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