用php和SQL实现网吧计费管理系统

涛哥 PHP代码

下面是一个简单的网吧计费系统的实现示例,使用 PHP 和 SQL:

  1. 创建一个名为 netbar_billing 的数据库,其中包含一个名为 users 的表格,用于存储用户信息,包括 id(用户 ID)、name(用户名)、balance(余额)和 status(状态)等字段。
  2. 创建一个名为 login 的页面,用于用户登录。用户需要输入用户名和密码,系统将验证用户信息,并在验证通过后将用户状态设置为“已登录”。
  3. 创建一个名为 logout 的页面,用于用户退出。用户退出后,系统将用户状态设置为“已退出”。
  4. 创建一个名为 billing 的页面,用于计费。在该页面中,将显示当前用户余额和计时器,用户可以选择不同的时间段来计费。在计费完成后,系统将扣除相应的费用并更新用户余额。 下面是一个示例代码:
<?php
// 连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "netbar_billing";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
// 在 login 页面中,验证用户信息
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST["username"];
    $password = $_POST["password"];
    $sql = "SELECT id, name, balance FROM users WHERE name = '$username' AND password = '$password'";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        $user_id = $row["id"];
        $user_name = $row["name"];
        $user_balance = $row["balance"];
        // 将用户状态设置为“已登录”
        $sql = "UPDATE users SET status = 'logged_in' WHERE id = '$user_id'";
        $conn->query($sql);
    } else {
        echo "用户名或密码错误";
    }
}
// 在 logout 页面中,将用户状态设置为“已退出”
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $user_id = $_POST["user_id"];
    $sql = "UPDATE users SET status = 'logged_out' WHERE id = '$user_id'";
    $conn->query($sql);
}
// 在 billing 页面中,扣除用户费用并更新余额
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $user_id = $_POST["user_id"];
    $time = $_POST["time"];
    $price = 1; // 每小时计费 1 元
    $total_price = $price * $time;
    // 检查用户余额是否充足
    $sql = "SELECT balance FROM users WHERE id = '$user_id'";
    $result = $conn->query($sql);
    $row = $result->fetch_assoc();
    $user_balance = $row["balance"];
    if ($user_balance >= $total_price) {
        // 更新用户余额
        $new_user_balance = $user_balance - $total_price;
        $sql = "UPDATE users SET balance = '$new_user_balance' WHERE id = '$user_id'";
        $conn->query($sql);
        // 记录用户消费历史
        $sql = "INSERT INTO billing_history (user_id, price, time) VALUES ('$user_id', '$total_price', '$time')";
        $conn->query($sql);
    } else {
        echo "余额不足";
    }
}
$conn->close();
?>

请注意,此示例中的代码仅供参考。实际实现中,您可能需要更多的功能和安全性检查,例如使用密码哈希而不是明文密码,限制用户登录尝试次数,记录用户活动日志等。

 
  • 网吧计费系统