本人是一位学生,正在学习当中,可能BUG众多,请见谅并指正,谢谢!!!

学生列表实现

HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>学生信息</title>
<link rel="stylesheet" type="text/css" href="css/Bootstrap.css">
</head>
<body>
<div class="container mt-5">
<h1 class="display-4 text-center">学生信息管理中心</h1>
<div class="row mt-3">
<a class="btn btn-info col-sm-2" style="margin-right: 88px; margin-left: 15px;" href="add_student.php">添加学生</a>
<input type="text" class="form-control col-sm-6 ml-5" placeholder="请输入关键词">
<button type="submit" class="btn btn-info col-sm-2 ml-4">点击搜索</button>
</div>
<table class="table table-hover table-bordered mt-3">
<thead class="thead-inverse">
<tr>
<th class="text-center align-middle">学号</th>
<th class="text-center align-middle">学院/系</th>
<th class="text-center align-middle">班级</th>
<th class="text-center align-middle">姓名</th>
<th class="text-center align-middle">性别</th>
<th class="text-center align-middle">年龄</th>
<th class="text-center align-middle">照片</th>
<th class="text-center align-middle">操作</th>
</tr>
</thead>
<tbody class="text-center">
<?php while ($student = mysqli_fetch_assoc($query)): ?>
<tr>
<td class="align-middle"><?php echo $student['num']; ?></td>
<td class="align-middle"><?php echo $student['system']; ?></td>
<td class="align-middle"><?php echo $student['class']; ?></td>
<td class="align-middle"><?php echo $student['name']; ?></td>
<td class="align-middle"><?php echo $student['gender'] === 1 ? '♂' : '♀'; ?></td>
<td class="align-middle"><?php echo date('Y') - substr($student['birthday'], 0, 4); ?></td>
<td class="align-middle"><img src="<?php echo $student['photo']; ?>" width="100" height="70"></td>
<td class="align-middle"><a class="btn btn-info mr-2" href="edit.php?num=<?php echo $student['num']; ?>">编辑</a><a class="btn btn-danger ml-2" href="delete.php?num=<?php echo $student['num']; ?>">删除</a></td>
</tr>
<?php endwhile ?>
</tbody>
</table>
</div>
</body>
</html>

PHP:

// 这里:
// 第一个参数:本地网络地址
// 第二个参数:数据库账号
// 第三个参数:数据库密码
// 第四个参数:数据库名称
$connection = mysqli_connect('localhost', 'root', '密码', 'students_info_system'); if (!$connection) {
exit('<h1>连接数据库失败</h1>');
} $query = mysqli_query($connection, 'select * from students'); if (!$query) {
exit('<h1>学生数据查询失败</h1>');
} $administrator_query = mysqli_query($connection, 'select * from students');

添加学生实现

HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>添加学生</title>
<link rel="stylesheet" type="text/css" href="css/Bootstrap.css">
</head>
<body>
<div class="container mt-3">
<h1 class="display-4 text-center">添加学生</h1>
<?php if (isset($error_msg)): ?>
<div class="alert alert-danger"><?php echo $error_msg; ?></div>
<?php endif ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" autocomplete="off">
<div class="form-group">
<input type="number" name="num" class="form-control" placeholder="学号" value="<?php echo isset($_POST['num']) ? $_POST['num']: ''; ?>">
</div>
<div class="form-group">
<select class="form-control" name="system">
<option>请选择学院/系</option>
<option>电气工程学院</option>
<option>信息工程与艺术学院</option>
<option>国际教育学院</option>
<option>水利水电工程学院</option>
<option>测绘与市政工程学院</option>
<option>马克思主义学院</option>
<option>建筑工程学院</option>
<option>经济与管理学院</option>
</select>
</div>
<div class="form-group">
<input type="text" name="class" class="form-control" placeholder="班级" value="<?php echo isset($_POST['class']) ? $_POST['class'] : ''; ?>">
</div>
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="姓名" value="<?php echo isset($_POST['name']) ? $_POST['name'] : ''; ?>">
</div>
<div class="form-group">
<select class="form-control" name="gender">
<option value="-1">请选择性别</option>
<option <?php echo isset($_POST['gender']) && $_POST['gender'] === '1' ? 'selected' : ''; ?> value="1">男</option>
<option <?php echo isset($_POST['gender']) && $_POST['gender'] === '0' ? 'selected' : ''; ?> value="0">女</option>
</select>
</div>
<div class="form-group">
<label for="birthday">出生日期</label>
<input type="date" name="birthday" class="form-control" id="birthday" value="<?php echo isset($_POST['birthday']) ? $_POST['birthday'] : ''; ?>">
</div>
<div class="form-group">
<label for="photo">照片</label>
<input type="file" name="photo" class="form-control">
</div>
<button class="btn btn-info btn-block">确认添加</button>
</form>
</div>
</body>
</html>

PHP:

function add_student () {

  
$connection = mysqli_connect('localhost', 'root', '密码', 'students_info_system'); if (!$connection) {
$GLOBALS['error_msg'] = '连接数据库失败';
return;
} $query = mysqli_query($connection, 'select * from students'); if (!$query) {
$GLOBALS['error_msg'] = '数据查询失败';
return;
} // 查询已有学生
while ($student = mysqli_fetch_assoc($query)) {
// var_dump($student);
$students_num[] = $student['num'];
} // var_dump($_FILES['photo']);
// var_dump($_POST['gender']);
if (empty($_POST['num'])) {
$GLOBALS['error_msg'] = '请输入学号';
return;
} // 判断该学号是否已经被添加(即列表中已存在该学生)=========
if (in_array($_POST['num'], $students_num)) {
$GLOBALS['error_msg'] = '该学生已存在';
return;
} if (empty($_POST['system']) || $_POST['system'] === '请选择学院/系') {
$GLOBALS['error_msg'] = '请选择学院/系';
return;
}
if (empty($_POST['class'])) {
$GLOBALS['error_msg'] = '请输入班级';
return;
}
if (empty($_POST['name'])) {
$GLOBALS['error_msg'] = '请输入姓名';
return;
}
if (!(isset($_POST['gender']) && $_POST['gender'] !== '-1')) {
$GLOBALS['error_msg'] = '请选择性别';
return;
}
if (empty($_POST['birthday'])) {
$GLOBALS['error_msg'] = '请输入出生日期';
return;
} // 以下处理文件域=======================================================
if (empty($_FILES['photo'])) {
$GLOBALS['error_msg'] = '请上传照片';
return;
}
if ($_FILES['photo']['error'] !== UPLOAD_ERR_OK) {
$GLOBALS['error_msg'] = '上传照片失败';
return;
}
// 验证上传文件的类型(只允许图片)
if (strpos($_FILES['photo']['type'], 'image/') !== 0) {
$GLOBALS['error_msg'] = '这不是支持的文件格式类型,请重新上传';
return;
} // 文件上传到了服务端开辟的一个临时地址,需要转移到本地
$image_target = 'images/' . $_FILES['photo']['name'];
if (!move_uploaded_file($_FILES['photo']['tmp_name'], $image_target)) {
$GLOBALS['error_msg'] = '图片上传失败';
return;
} // 接收学生信息
$num = (string)$_POST['num'];
$system = (string)$_POST['system'];
$class = (string)$_POST['class'];
$name = (string)$_POST['name'];
$gender = (int)$_POST['gender'];
$birthday = (string)$_POST['birthday'];
$photo = (string)$image_target; // 将数据存放到数据库
$insert_query = mysqli_query($connection, "insert into students values ('{$num}', '{$system}', '{$class}', '{$name}', {$gender}, '{$birthday}', '{$photo}')"); if (!$insert_query) {
$GLOBALS['error_msg'] = '数据查询失败';
return;
} $affected_rows = mysqli_affected_rows($connection); if ($affected_rows !== 1) {
$GLOBALS['error_msg'] = '添加失败';
return;
} // 延迟2秒
time_sleep_until(time() + 2);

  // 跳回到学生信息页面
header("Location: student_info.php"); } if ($_SERVER['REQUEST_METHOD'] === 'POST') {
add_student();
}

PHP 结合 Bootstrap 实现学生列表以及添加学生功能实现(继上篇登录及注册功能之后)的更多相关文章

  1. Bootstrap框架--DataTables列表示例--添加判断

    一.参考代码 <%@ include file="./include/header.jsp"%> <!-- jquery.dataTables.css --> ...

  2. Bootstrap历练实例:向列表组添加内容

    向列表组添加自定义内容 我们可以向上面已添加链接的列表组添加任意的 HTML 内容.下面的实例演示了这点: <!DOCTYPE html><html><head>& ...

  3. Bootstrap历练实例:向列表组添加链接

    向列表组添加链接 通过使用锚标签代替列表项,我们可以向列表组添加链接.我们需要使用 <div> 代替 <ul> 元素.下面的实例演示了这点: <!DOCTYPE html ...

  4. PHP 结合 Boostrap 结合 js 实现学生列表删除编辑以及搜索功能(完结)

    这个自己的小项目要先告一段落了.可能还有许多bug.请见谅 删除学生功能 PHP: // 这里是通过前端代码HTML中的 url 传过来的,用 $_GET 来获取(相关HTML代码可以看一下到主页看一 ...

  5. Vue学习之路第十六篇:车型列表的添加、删除与检索项目

    又到了大家最喜欢的项目练习阶段,学以致用,今天我们要用前几篇的学习内容实现列表的添加与删除. 学前准备: ①:JavaScript中的splice(index,i)方法:从已知数组的index下标开始 ...

  6. MVC学生管理系统-阶段II(添加学生信息)

    项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架,学生列表显示    请看上一篇文章 本文是对阶段 ...

  7. Vue和Element基础使用,综合案例学生列表实现

    知识点梳理 课堂讲义 1.Vue 快速入门 1.1.Vue的介绍 Vue是一套构建用户界面的渐进式前端框架. 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合. 通过尽可能简单的A ...

  8. 数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True

    数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True alter table Sys_User add AgreeAddingFriend bit alt ...

  9. bootstrap制作搜索框及添加回车搜索事件

    下面是开发中用bootstrap制作的一个搜索框,以及给搜索框添加回车搜索事件的一个小案例. bootstrap制作搜索框及添加回车搜索事件 下面是功能实现的代码: <!DOCTYPE html ...

随机推荐

  1. cocos creator策略类手游开发教程

    目录 大小6.83GB,Mp4格式,语言:中文 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  2. egg.js搭建 api设置跨域

    1.egg简述 Egg.js,为企业级框架和应用而生,是阿里开源的企业级 Node.js 框架. 2.特点 Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开 ...

  3. PHP系列 | ThinkPHP5数据库迁移工具 migration

    了解更多,请关注微信公众号 ThinkPHP5数据库迁移工具 migration 什么是Migration? migration用谷歌翻译是移民的意思,在PHP中我们将它理解为迁移,将Migratio ...

  4. pip常用命令(转载)

    用阿里云服务器,使用pip安装第三方库的时候卡的要死.所以我就想pip能不能安装本地的包. 找到了这篇博客: http://me.iblogc.com/2015/01/01/pip%E5%B8%B8% ...

  5. Navicat 破解版链接

    本文为转载内容 百度网盘地址: https://pan.baidu.com/s/1nvIIOad 压缩包中有注册码和使用方法

  6. OpenStack Neutron单网卡桥接模式访问外网

    环境配置: * Exsi一台 * Exsi创建的单网卡虚拟机一台 * Ubuntu 14LTS 64位操作系统 * OpenStack Liberty版本 * 使用Neutron网络而非Nova网络 ...

  7. python中urllib的urlencode与urldecode

    当url地址含有中文,或者参数有中文的时候,这个算是很正常了,但是把这样的url作为参数传递的时候(最常见的callback),需要把一些中文甚至'/'做一下编码转换. urlencode urlli ...

  8. tp3.2升级tp5需要注意的变化

    I方法用input代替:D和M方法没了,需要的话自己封装.C方法没了,需要自己封装,配置文件说明官方文档写的不对,无法使用 Session的使用发生很大变化 模板渲染,控制器传空值会报错 模板内置标签 ...

  9. clipboard 在 vue 项目中,on 事件监听回调多次执行

    clipboard 定义一个全局变量 import ClipboardJS from "clipboard"; if(clipboard){ clipboard.destroy() ...

  10. app内嵌h5页面在ios手机端滑动卡顿的解决方法

    1.带滚动条的dom需加样式 -webkit-overflow-scrolling: touch;2.去掉 width:100%; height:100%