在数字化时代,线上票务系统已成为各类活动不可或缺的一部分。本文将带你一步步用PHP构建一个功能完善的在线活动票务预订系统,助你轻松管理活动门票。
项目准备
1. 环境搭建
首先,确保你的开发环境已安装以下工具:
- PHP:推荐使用PHP 7.4及以上版本。
- MySQL:用于数据存储。
- Apache/Nginx:Web服务器。
2. 创建数据库
在MySQL中创建一个名为event_ticket
的数据库,并添加以下表:
- events:存储活动信息。
- tickets:存储门票信息。
- users:存储用户信息。
CREATE DATABASE event_ticket;
USE event_ticket;
CREATE TABLE events (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
date DATETIME NOT NULL,
venue VARCHAR(255) NOT NULL
);
CREATE TABLE tickets (
id INT AUTO_INCREMENT PRIMARY KEY,
event_id INT NOT NULL,
price DECIMAL(10, 2) NOT NULL,
quantity INT NOT NULL,
FOREIGN KEY (event_id) REFERENCES events(id)
);
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL
);
后端开发
1. 连接数据库
创建一个db.php
文件,用于连接数据库:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "event_ticket";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
2. 活动管理
在events.php
中编写代码,实现活动的增删改查:
<?php
include 'db.php';
// 添加活动
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'];
$date = $_POST['date'];
$venue = $_POST['venue'];
$sql = "INSERT INTO events (name, date, venue) VALUES ('$name', '$date', '$venue')";
$conn->query($sql);
}
// 获取活动列表
$sql = "SELECT * FROM events";
$result = $conn->query($sql);
$events = [];
while($row = $result->fetch_assoc()) {
$events[] = $row;
}
// 删除活动
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
$sql = "DELETE FROM events WHERE id=$id";
$conn->query($sql);
}
$conn->close();
?>
3. 门票管理
在tickets.php
中编写代码,管理门票信息:
<?php
include 'db.php';
// 添加门票
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$event_id = $_POST['event_id'];
$price = $_POST['price'];
$quantity = $_POST['quantity'];
$sql = "INSERT INTO tickets (event_id, price, quantity) VALUES ('$event_id', '$price', '$quantity')";
$conn->query($sql);
}
// 获取门票列表
$sql = "SELECT * FROM tickets";
$result = $conn->query($sql);
$tickets = [];
while($row = $result->fetch_assoc()) {
$tickets[] = $row;
}
$conn->close();
?>
前端开发
1. 活动列表页面
创建events.html
,展示活动列表并支持删除操作:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>活动列表</title>
</head>
<body>
<h1>活动列表</h1>
<a href="add_event.html">添加活动</a>
<ul>
<?php foreach ($events as $event): ?>
<li>
<?= $event['name'] ?> - <?= $event['date'] ?> - <?= $event['venue'] ?>
<a href="?delete=<?= $event['id'] ?>">删除</a>
</li>
<?php endforeach; ?>
</ul>
</body>
</html>
2. 添加活动页面
创建add_event.html
,用于添加新活动:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加活动</title>
</head>
<body>
<h1>添加活动</h1>
评论(0)