PHP实现医院
PHP实现医院管理系统
医院管理系统通常包含患者管理、医生排班、药品库存、预约挂号等功能。以下是使用PHP实现医院管理系统的关键步骤和代码示例。
数据库设计
创建数据库表结构是系统的基础。主要表包括患者表、医生表、药品表和预约表。
CREATE TABLE patients (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT,
gender VARCHAR(10),
contact VARCHAR(20)
);
CREATE TABLE doctors (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
specialization VARCHAR(100),
contact VARCHAR(20)
);
CREATE TABLE medicines (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
quantity INT,
price DECIMAL(10,2)
);
CREATE TABLE appointments (
id INT AUTO_INCREMENT PRIMARY KEY,
patient_id INT,
doctor_id INT,
date DATE,
time TIME,
FOREIGN KEY (patient_id) REFERENCES patients(id),
FOREIGN KEY (doctor_id) REFERENCES doctors(id)
);
患者管理功能
实现患者信息的添加、查看、更新和删除功能。
// 添加患者
function addPatient($name, $age, $gender, $contact) {
global $conn;
$sql = "INSERT INTO patients (name, age, gender, contact) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("siss", $name, $age, $gender, $contact);
return $stmt->execute();
}
// 查看患者列表
function getPatients() {
global $conn;
$sql = "SELECT * FROM patients";
$result = $conn->query($sql);
return $result->fetch_all(MYSQLI_ASSOC);
}
医生排班功能
管理医生的排班信息,包括添加和查询排班。
// 添加医生
function addDoctor($name, $specialization, $contact) {
global $conn;
$sql = "INSERT INTO doctors (name, specialization, contact) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $name, $specialization, $contact);
return $stmt->execute();
}
// 查询医生排班
function getDoctors() {
global $conn;
$sql = "SELECT * FROM doctors";
$result = $conn->query($sql);
return $result->fetch_all(MYSQLI_ASSOC);
}
药品库存管理
管理药品的库存和价格信息。
// 添加药品
function addMedicine($name, $quantity, $price) {
global $conn;
$sql = "INSERT INTO medicines (name, quantity, price) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sid", $name, $quantity, $price);
return $stmt->execute();
}
// 更新药品库存
function updateMedicine($id, $quantity) {
global $conn;
$sql = "UPDATE medicines SET quantity = ? WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $quantity, $id);
return $stmt->execute();
}
预约挂号功能
实现患者的预约挂号功能。
// 添加预约
function addAppointment($patient_id, $doctor_id, $date, $time) {
global $conn;
$sql = "INSERT INTO appointments (patient_id, doctor_id, date, time) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("iiss", $patient_id, $doctor_id, $date, $time);
return $stmt->execute();
}
// 查询预约
function getAppointments() {
global $conn;
$sql = "SELECT a.id, p.name AS patient_name, d.name AS doctor_name, a.date, a.time
FROM appointments a
JOIN patients p ON a.patient_id = p.id
JOIN doctors d ON a.doctor_id = d.id";
$result = $conn->query($sql);
return $result->fetch_all(MYSQLI_ASSOC);
}
用户界面设计
使用HTML和CSS创建用户友好的界面,方便用户操作。
<!DOCTYPE html>
<html>
<head>
<title>医院管理系统</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>医院管理系统</h1>
<div class="menu">
<a href="patients.php">患者管理</a>
<a href="doctors.php">医生管理</a>
<a href="medicines.php">药品管理</a>
<a href="appointments.php">预约管理</a>
</div>
</body>
</html>
安全措施
确保系统的安全性,防止SQL注入和未经授权的访问。
// 数据库连接
$conn = new mysqli("localhost", "username", "password", "hospital_db");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 输入验证
function sanitizeInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
通过以上步骤,可以实现一个功能完善的医院管理系统。系统可以根据实际需求进一步扩展和优化。







