本人是一位学生,正在学习当中,可能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. 作业——11 分布式并行计算MapReduce

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319 1.用自己的话阐明Hadoop平台上HDFS和MapRedu ...

  2. 第10组 Alpha冲刺(4/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 学习调用中国天气网API,接近实现天气推送功能 对天气推送的形式进行讨论及重确 ...

  3. Spark2.x(五十九):yarn-cluster模式提交Spark任务,如何关闭client进程?

    问题: 最近现场反馈采用yarn-cluster方式提交spark application后,在提交节点机上依然会存在一个yarn的client进程不关闭,又由于spark application都是 ...

  4. canvas api 速记

    基本骨骼 <canvas id="canvas" width=1000 height=1000 style="border: 1px black dotted&qu ...

  5. PostgreSQL中的The Oversized-Attribute Storage Technique(TOAST:超大属性存储技术)

    PostgreSQL使用固定的页面大小(通常为8kB),并且不允许元组跨越多个页面.因此,不可能直接存储非常大的字段值.为了克服这种限制,将大字段值压缩和/或分解成多个物理行.这对用户来说是透明的,对 ...

  6. odoo开发笔记--日期or时间字段给定默认值

    开发中经常有这样的场景,需要给某个日期或者时间的字段默认值: 例如: 日期,默认今天 时间,默认当前时间 可以在odoo模型定义中进行设置, 如下样例提供参考: test_data = fields. ...

  7. window git安装 以及 tortoiseGit安装与使用

    一:Git安装 使用TortoiseGit这个程序,需要先安装Git Windows版本Git的下载页面: http://git-scm.com/download/win 1:下载Git到文件夹, 2 ...

  8. [LeetCode] 303. Range Sum Query - Immutable 区域和检索 - 不可变

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  9. [LeetCode] 366. Find Leaves of Binary Tree 找二叉树的叶节点

    Given a binary tree, find all leaves and then remove those leaves. Then repeat the previous steps un ...

  10. Jenkins - 安装并启动Jenkins

    1 - 关于Jenkins 构建流水线(build pipeline)工具Jenkins可以轻松地定义和管理各种各样的操作(构建.测试等),并将这些操作像管道pipe一样自由地进行组合,从而自动.流畅 ...