Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan fungsi cas semula dan penggunaan mata pengguna dalam laman web soal jawab pengetahuan.

PHP melaksanakan fungsi cas semula dan penggunaan mata pengguna dalam laman web soal jawab pengetahuan.

WBOY
WBOYasal
2023-07-02 10:52:39632semak imbas

PHP melaksanakan fungsi cas semula dan penggunaan mata pengguna dalam laman web soal jawab pengetahuan

Dengan perkembangan pesat Internet, laman web soal jawab pengetahuan menyediakan platform untuk pengguna, di mana mereka boleh bertanya soalan, menjawab soalan orang lain, berkomunikasi antara satu sama lain dan berkongsi ilmu . Untuk menggalakkan pengguna mengambil bahagian dan menyumbang secara aktif, pendekatan yang lebih biasa ialah memperkenalkan mekanisme mata, memberikan pengguna mata tertentu sebagai galakan dan digunakan untuk penggunaan tertentu.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi cas semula dan penggunaan mata pengguna dalam tapak web soal jawab pengetahuan yang mudah, dan memberikan contoh kod yang berkaitan.

Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat mata pengguna. Katakan kita sudah mempunyai jadual bernama "pengguna", yang mengandungi medan "id", "nama pengguna", dan "mata", yang masing-masing mewakili ID pengguna, nama pengguna dan mata pengguna.

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `points` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Seterusnya, kita boleh mencipta fail PHP ringkas bernama "index.php" untuk memaparkan maklumat mata pengguna dan menyediakan fungsi cas semula mata dan penggunaan.

<?php
// 连接到数据库
$mysqli = new mysqli('数据库服务器', '数据库用户名', '数据库密码', '数据库名');
if ($mysqli->connect_errno) {
    die('数据库连接失败:' . $mysqli->connect_error);
}

// 获取操作类型(充值或消费)
$action = isset($_GET['action']) ? $_GET['action'] : '';

// 根据操作类型执行相应的处理
if ($action == 'recharge') {
    // 获取用户ID和充值积分
    $userID = isset($_GET['user_id']) ? intval($_GET['user_id']) : 0;
    $points = isset($_GET['points']) ? intval($_GET['points']) : 0;

    // 更新用户积分
    $mysqli->query("UPDATE `users` SET `points`=`points`+$points WHERE `id`='$userID'");
    // 检查是否有更新成功
    if ($mysqli->affected_rows > 0) {
        echo "充值成功!";
    } else {
        echo "充值失败,请重试!";
    }
} elseif ($action == 'consume') {
    // 获取用户ID和消费积分
    $userID = isset($_GET['user_id']) ? intval($_GET['user_id']) : 0;
    $points = isset($_GET['points']) ? intval($_GET['points']) : 0;

    // 检查用户积分是否足够
    $result = $mysqli->query("SELECT `points` FROM `users` WHERE `id`='$userID'");
    if ($result && $result->num_rows > 0) {
        $row = $result->fetch_assoc();
        $userPoints = intval($row['points']);
        if ($userPoints >= $points) {
            // 更新用户积分
            $mysqli->query("UPDATE `users` SET `points`=`points`-$points WHERE `id`='$userID'");
            if ($mysqli->affected_rows > 0) {
                echo "消费成功!";
            } else {
                echo "消费失败,请重试!";
            }
        } else {
            echo "积分不足,无法消费!";
        }
    } else {
        echo "用户不存在!";
    }
}

// 查询用户积分信息
$result = $mysqli->query("SELECT `id`, `username`, `points` FROM `users`");
if ($result && $result->num_rows > 0) {
    echo "<table>
        <tr><th>ID</th><th>用户名</th><th>积分</th></tr>";
    while ($row = $result->fetch_assoc()) {
        echo "<tr>
            <td>".$row['id']."</td>
            <td>".$row['username']."</td>
            <td>".$row['points']."</td>
        </tr>";
    }
    echo "</table>";
} else {
    echo "暂无用户积分信息!";
}

// 关闭数据库连接
$mysqli->close();
?>

Dalam contoh kod ini, kami mula-mula menyambung ke pangkalan data, dan kemudian mendapatkan jenis operasi ("tindakan") melalui parameter GET, yang dibahagikan kepada dua jenis: cas semula ("caj semula") dan penggunaan ("menggunakan" ). Mengikut jenis operasi yang berbeza, kami memperoleh ID pengguna ("user_id") dan bilangan mata ("mata") melalui parameter GET.

Dalam operasi cas semula ("recharge"), kami meningkatkan mata pengguna dengan nilai yang sepadan melalui pernyataan kemas kini SQL dan menyemak sama ada kemas kini berjaya melalui $mysqli->affected_rows. $mysqli->affected_rows 检查是否更新成功。

在消费("consume")操作中,我们首先通过SQL查询语句获取用户的当前积分数,然后判断用户积分是否足够进行消费。如果积分足够,我们再通过SQL更新语句将用户的积分减去相应的数值,并同样通过 $mysqli->affected_rows

Dalam operasi penggunaan ("consume"), kami mula-mula mendapatkan mata semasa pengguna melalui pernyataan pertanyaan SQL, dan kemudian menentukan sama ada mata pengguna mencukupi untuk penggunaan. Jika mata mencukupi, kami akan menolak nilai yang sepadan daripada mata pengguna melalui pernyataan kemas kini SQL dan juga menyemak sama ada kemas kini berjaya melalui $mysqli->affected_rows.

Akhir sekali, kami menggunakan pertanyaan SQL yang lain untuk mendapatkan maklumat mata semua pengguna dan memaparkannya dalam jadual HTML yang ringkas.

Sila ambil perhatian bahawa ini hanyalah contoh mudah, aplikasi sebenar mungkin memerlukan kod yang lebih lengkap dan selamat untuk mengendalikan ralat dan mengesahkan input pengguna.

Ringkasnya, artikel ini melaksanakan fungsi cas semula dan penggunaan mata pengguna dalam tapak web soal jawab pengetahuan melalui PHP, dan menyediakan contoh kod yang berkaitan. Pembangun boleh membuat penambahbaikan dan sambungan yang sepadan mengikut keperluan sebenar untuk menyesuaikannya dengan senario aplikasi tertentu. 🎜

Atas ialah kandungan terperinci PHP melaksanakan fungsi cas semula dan penggunaan mata pengguna dalam laman web soal jawab 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