基于 PHP + MySQL 实现学生信息管理系统实例攻略
目录
- 前言
- 实现步骤
- 环境准备
- 数据库设计
- 功能实现
- 示例说明
- 创建学生信息表
- 添加学生信息
前言
学生信息管理系统是普通的数据管理系统,开发一个基于 PHP + MySQL 实现的学生信息管理系统可以练习自己的编码能力,同时也可以巩固自己的数据库设计和编程理解。
在本文中,将介绍如何实现基于 PHP + MySQL 的学生信息管理系统。下面将详细阐述环境准备、数据库设计和功能实现的内容。
实现步骤
1. 环境准备
首先,需要搭建一个 PHP 环境,PHP 可以使用 XAMPP、WAMPP 或者使用本地的 Linux 系统进行安装。这里以使用 XAMPP 为例进行介绍。
安装 XAMPP 可以参考以下步骤:
- 下载并运行 XAMPP 安装程序。
- 选择安装目录并进行安装。
- 打开控制面板,启动 Apache 和 MySQL 服务。
- 将项目文件放置在 XAMPP 安装目录中的 htdocs 目录下。
完成以上步骤后,就可以进行数据库设计和功能实现的工作了。
2. 数据库设计
这里的学生信息管理系统是涉及到学生信息的存储和查询,所以需要设计学生信息表。具体表的设计如下:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) DEFAULT '' COMMENT '姓名',
`gender` tinyint(4) DEFAULT '0' COMMENT '性别(0:未知,1:男,2:女)',
`age` tinyint(4) DEFAULT '0' COMMENT '年龄',
`class` varchar(20) DEFAULT '' COMMENT '班级',
`address` varchar(50) DEFAULT '' COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息表';
在该表中,字段 id 是自增字段,用于表示学生信息的唯一标识。除此之外,还包含了学生姓名、性别、班级、地址等字段。
3. 功能实现
接下来,需要实现以下功能:
- 显示学生列表
- 添加学生信息
- 编辑学生信息
- 删除学生信息
1. 显示学生列表
在首页 index.php 中显示所有学生的信息,代码如下:
<?php
// 连接到数据库
$con = mysqli_connect('localhost', 'root', 'password', 'test');
// 检查连接错误
if (!$con) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
// 设置字符集
mysqli_set_charset($con, 'utf8');
// 查询学生信息
$sql = 'SELECT * FROM student';
$result = mysqli_query($con, $sql);
// 显示学生信息列表
echo '<table>';
echo '<tr><th>ID</th><th>姓名</th><th>性别</th><th>年龄</th><th>班级</th><th>地址</th><th>操作</th></tr>';
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>' . ($row['gender'] == 1 ? '男' : ($row['gender'] == 2 ? '女' : '')) . '</td>';
echo '<td>' . $row['age'] . '</td>';
echo '<td>' . $row['class'] . '</td>';
echo '<td>' . $row['address'] . '</td>';
echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑</a> <a href="delete.php?id=' . $row['id'] . '">删除</a></td>';
echo '</tr>';
}
echo '</table>';
// 关闭连接
mysqli_close($con);
?>
2. 添加学生信息
添加学生信息可以在 add.php 中实现,通过表单提交信息到数据库。在添加学生信息前,需要进行表单验证,确保各项信息的正确性。代码如下:
<?php
// 连接到数据库
$con = mysqli_connect('localhost', 'root', 'password', 'test');
// 检查连接错误
if (!$con) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
// 处理表单提交的数据
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 检查表单数据是否合法
if (!isset($_POST['name']) || !isset($_POST['gender']) || !isset($_POST['age']) || !isset($_POST['class']) || !isset($_POST['address'])) {
echo '请填写所有信息';
} else if ($_POST['name'] === '' || $_POST['gender'] === '' || $_POST['age'] === '' || $_POST['class'] === '' || $_POST['address'] === '') {
echo '请填写完整信息';
} else if (!is_numeric($_POST['age'])) {
echo '年龄必须是数字';
} else {
// 保存学生信息
$name = mysqli_real_escape_string($con, $_POST['name']);
$gender = intval($_POST['gender']);
$age = intval($_POST['age']);
$class = mysqli_real_escape_string($con, $_POST['class']);
$address = mysqli_real_escape_string($con, $_POST['address']);
$sql = "INSERT INTO student (name, gender, age, class, address) VALUES ('$name', $gender, $age, '$class', '$address')";
$result = mysqli_query($con, $sql);
if ($result) {
header('Location: index.php');
exit();
} else {
echo '保存学生信息出错:' . mysqli_error($con);
}
}
}
// 关闭连接
mysqli_close($con);
?>
在这段代码中,首先判断表单是否填写完整且合法,并将处理后的信息保存到数据库中。如果保存成功,则跳转到首页 index.php 中显示学生列表。
示例说明
下面以创建学生信息表和添加学生信息为例,演示如何实现学生信息管理系统。
1. 创建学生信息表
首先,在 MySQL 中创建学生信息表。通过在 MySQL 的客户端界面输入以下 SQL 语句:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) DEFAULT '' COMMENT '姓名',
`gender` tinyint(4) DEFAULT '0' COMMENT '性别(0:未知,1:男,2:女)',
`age` tinyint(4) DEFAULT '0' COMMENT '年龄',
`class` varchar(20) DEFAULT '' COMMENT '班级',
`address` varchar(50) DEFAULT '' COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息表';
即可完成学生信息表的创建。
2. 添加学生信息
然后,在项目中的 add.php 文件中编写添加学生信息的代码。在实现时,需要注意表单验证以及数据的安全性。举例来说,以下代码可以用于检查年龄是否是数字:
if (!is_numeric($_POST['age'])) {
echo '年龄必须是数字';
}
这样就可以预防恶意用户提交不合法的信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于php+MySql实现学生信息管理系统实例 - Python技术站