用php实现一个人口管理系统,可以在原来表的基础上,添加医生表,疫苗表,疫苗接种表,child登录可以查自己疫苗接种信息代码
时间: 2023-07-14 07:12:54 浏览: 72
用php做的一个简单的系统
以下是一个简单的人口管理系统的 PHP 代码示例,包括三个表:人口表、医生表和疫苗接种表。在人口表中,我们存储了每个人的姓名、性别、出生日期和地址。在医生表中,我们存储了医生的姓名、工作单位和联系方式。在疫苗接种表中,我们存储了每个人接种的疫苗类型、接种日期和接种医生。
创建数据库表:
```sql
CREATE TABLE `people` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`gender` enum('male','female') NOT NULL,
`birthdate` date NOT NULL,
`address` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `doctors` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`workplace` varchar(100) NOT NULL,
`contact` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `vaccinations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`people_id` int(11) NOT NULL,
`vaccine_type` varchar(50) NOT NULL,
`vaccinate_date` date NOT NULL,
`doctor_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`people_id`) REFERENCES `people`(`id`) ON DELETE CASCADE,
FOREIGN KEY (`doctor_id`) REFERENCES `doctors`(`id`) ON DELETE CASCADE
);
```
插入一些测试数据:
```sql
INSERT INTO `people` (`name`, `gender`, `birthdate`, `address`) VALUES
('张三', 'male', '1990-01-01', '北京市'),
('李四', 'female', '1995-02-02', '上海市'),
('王五', 'male', '2000-03-03', '广州市');
INSERT INTO `doctors` (`name`, `workplace`, `contact`) VALUES
('张医生', '北京市卫健委', '010-12345678'),
('李医生', '上海市卫健委', '021-87654321'),
('王医生', '广州市卫健委', '020-55555555');
INSERT INTO `vaccinations` (`people_id`, `vaccine_type`, `vaccinate_date`, `doctor_id`) VALUES
(1, '乙肝疫苗', '1991-01-01', 1),
(1, '麻疹疫苗', '1994-01-01', 2),
(2, '麻疹疫苗', '1996-02-02', 2),
(3, '百白破疫苗', '2001-03-03', 3),
(3, '乙肝疫苗', '2002-03-03', 3);
```
人口管理系统 PHP 代码:
```php
<?php
//连接数据库
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "population";
$conn = new mysqli($servername, $username, $password, $dbname);
//检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
//获取所有人口信息
$sql = "SELECT * FROM people";
$result = $conn->query($sql);
//输出表格显示人口信息
echo "<table border='1'>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>出生日期</th>
<th>地址</th>
<th>疫苗接种信息</th>
</tr>";
if ($result->num_rows > 0) {
// 输出每行数据
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row["id"]. "</td>";
echo "<td>" . $row["name"]. "</td>";
echo "<td>" . $row["gender"]. "</td>";
echo "<td>" . $row["birthdate"]. "</td>";
echo "<td>" . $row["address"]. "</td>";
echo "<td>";
//查询该人接种的疫苗信息
$vaccine_sql = "SELECT * FROM vaccinations WHERE people_id = " . $row["id"];
$vaccine_result = $conn->query($vaccine_sql);
if ($vaccine_result->num_rows > 0) {
// 输出每行数据
while($vaccine_row = $vaccine_result->fetch_assoc()) {
//查询接种医生信息
$doctor_sql = "SELECT * FROM doctors WHERE id = " . $vaccine_row["doctor_id"];
$doctor_result = $conn->query($doctor_sql);
if ($doctor_result->num_rows > 0) {
$doctor_row = $doctor_result->fetch_assoc();
echo $vaccine_row["vaccine_type"] . "(接种日期:" . $vaccine_row["vaccinate_date"] . ",接种医生:" . $doctor_row["name"] . ")<br>";
}
}
} else {
echo "暂无疫苗接种信息";
}
echo "</td>";
echo "</tr>";
}
} else {
echo "0 结果";
}
echo "</table>";
//关闭数据库连接
$conn->close();
?>
```
在此基础上,为每个 child 用户创建一个登录界面,让他们可以查看自己的疫苗接种信息。具体实现方法可以采用 PHP Session,将登录用户的信息存储在 session 中,并在查询疫苗接种信息时加入用户 ID 的限制。
阅读全文