Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP untuk membangunkan fungsi sistem tajuk dan pingat pengguna dalam laman web soalan dan jawapan pengetahuan.

Gunakan PHP untuk membangunkan fungsi sistem tajuk dan pingat pengguna dalam laman web soalan dan jawapan pengetahuan.

WBOY
WBOYasal
2023-07-02 15:49:401321semak imbas

Gunakan PHP untuk membangunkan fungsi sistem gelaran dan pingat pengguna dalam laman web soal jawab ilmu

Dalam laman web soal jawab ilmu, sistem gelaran dan pingat pengguna merupakan fungsi penting yang mendorong pengguna untuk mengambil bahagian dan menyumbang. Dengan memberi pengguna tajuk dan lencana khas, anda boleh menggalakkan mereka menjawab soalan secara aktif, menyiarkan kandungan berharga dan membantu pengguna lain menyelesaikan masalah. Dalam artikel ini, saya akan menggunakan bahasa pengaturcaraan PHP untuk melaksanakan fungsi ini.

Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat pengguna, termasuk ID pengguna, nama pengguna, gelaran dan pingat, dsb. Kita boleh menggunakan pangkalan data MySQL untuk mencapai fungsi ini. Berikut ialah contoh struktur jadual pangkalan data:

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

Seterusnya, kita perlu mencipta fail PHP untuk mengendalikan logik tajuk dan pingat pengguna. Mula-mula, kami menyambung ke pangkalan data dan kemudian mendapatkan gelaran dan pingat semasa pengguna berdasarkan ID pengguna. Berikut ialah contoh kod 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);
?>

Kini kami boleh mendapatkan maklumat gelaran dan pingat pengguna. Seterusnya, kami perlu melaksanakan halaman untuk memaparkan tajuk dan pingat pengguna, dan menyediakan beberapa butang supaya pengguna boleh memilih untuk mengemas kini tajuk dan pingat mereka. Berikut ialah kod HTML dan JavaScript sebagai contoh:

<!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>

Akhir sekali, kita perlu mencipta fail PHP untuk mengendalikan logik untuk pengguna mengemas kini tajuk dan pingat. Berikut ialah contoh kod 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);
?>

Melalui contoh kod di atas, kita boleh melaksanakan tajuk pengguna asas dan fungsi sistem pingat. Pengguna boleh melihat dan mengemas kini tajuk dan pingat mereka melalui halaman, dengan itu meningkatkan aktiviti dan penyertaan mereka dalam laman web trivia. Sudah tentu, kita boleh mengembangkan lagi berdasarkan asas ini, seperti menambah lebih banyak gelaran dan jenis pingat, serta logik yang lebih kompleks dan pertimbangan bersyarat. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Gunakan PHP untuk membangunkan fungsi sistem tajuk dan pingat pengguna dalam laman web soalan dan jawapan pengetahuan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn