学生考试信息录入和最近一次考试成绩查询平台
一、学生考试信息录入
1、首先数据库中要有两个表,student 、score;
表结构可以看一下
student 学生基本信息表
score 分数表
2、学生信息表中手动录入所有学生信息基本信息
3、展示学生考试成绩录入视图页面, 为了使用者录入学生考试成绩方便,首先查询出学生基本信息采用表格形式提交,代码如下:
<?php
header("content-type:text/html;charset=utf-8");
$con=mysqli_connect('127.0.0.1','root','root','lening');
$sql="select * from student";
$res=mysqli_query($con,$sql);
while($arr=mysqli_fetch_assoc($res)){$data[]=$arr;
};
foreach($data as $k=>$v){$data[$k]['stu_age']=date('Y')-date('Y',strtotime($v['stu_age']));
}
?>
<form action="score_do.php" method="post"><table border="1"><tr><th>序号</th><th>姓名</th><th>入学时间</th><th>性别</th><th>年龄</th><th>是否毕业</th><th>分数</th><th>考试时间</th></tr><?php foreach($data as $k=>$v){?><tr><td><?php echo $v['stu_id']?></td><td><?php echo $v['stu_name']?></td><td><?php echo $v['stu_time']?></td><td><?php echo $v['stu_sex']?></td><td><?php echo $v['stu_age']?></td><td><?php echo $v['is_graduate']?></td><td><input type="hidden" value="<?php echo $v['stu_id']?>" name="stu_id[]"><input type="text" placeholder="请输入分数" name="score[]"></td><td><input type="date" placeholder="请输入考试时间" name="ctime[]"></td></tr><?php }?><tr><td colspan="8"><input type="submit" value="添加"><input type="reset"></td></tr></table>
</form>
效果视图:
4、接值处理入库:
<?php
header('content-type:text/html;charset=UTF-8');
include_once 'Db.class.php';
$arr=$_POST;
if(!empty($arr)){foreach($arr as $key=>$item){foreach($item as $k=>$v){$data[$k][$key]=$v;}}$db=new Db();foreach($data as $k=>$v){if($v['score']!=''&&$v['ctime']!=''){$res=$db->add('score',$v);}}if($res){echo "添加成功";header("refresh:1;url='scoreList.php'");}else{echo "添加失败";header("refresh:1;url='score.php'");}
}
5、入库后是列表展示
(1)列表展示中具有姓名查询功能
(2)分数段查询功能
<?php
header('content-type:text/html;charset=utf8');
$con=mysqli_connect('127.0.0.1','root','root','lening');
$sql="select * from score join student on score.stu_id=student.stu_id";
$res=mysqli_query($con,$sql);
while($arr=mysqli_fetch_assoc($res)){$data[]=$arr;
};
//print_r($data);exit;
?>
<input type="text" id="keyword">
<input type="button" value="按姓名查找" οnclick="search()">
<select id="type"><option value="<"><</option><option value="=">=</option><option value=">">></option>
</select>
<select id="score"><?php for($i=1;$i<101;$i++){?><option value="<?php echo $i;?>"><?php echo $i;?></option><?php }?>
</select>
<input type="button" value="按分数查找" οnclick="scoreSearch()">
<table border="1" id="show"><tr><th>姓名</th><th>分数</th><th>考试时间</th></tr><?php foreach($data as $k=>$v){?><tr><td><?php echo $v['stu_name']?></td><td><?php echo $v['score']?></td><td><?php echo $v['ctime']?></td></tr><?php }?>
</table>
查询功能运用ajax具体js代码如下:
<script>/** 按姓名查找 */function search(){var keyword=document.getElementById('keyword').value;//创建ajax对象var xhr=new XMLHttpRequest();//回调函数xhr.onreadystatechange=function(){if(xhr.readyState==4&&xhr.status==200){//接受响应//console.log(xhr.responseText);document.getElementById('show').innerHTML=(xhr.responseText);}}//请求页面xhr.open('get','search.php?stu_name='+keyword);//发送xhr.send(null);}/** 按分数查找 */function scoreSearch(){var type=document.getElementById('type').value;var keyword=document.getElementById('score').value;//创建ajax对象var xhr=new XMLHttpRequest();//回调函数xhr.onreadystatechange=function(){if(xhr.readyState==4&&xhr.status==200){//接受响应
// console.log(xhr.responseText);document.getElementById('show').innerHTML=(xhr.responseText);}}//请求页面xhr.open('get','searchScore.php?score='+keyword+'&type='+type);//发送xhr.send(null);}</script>
serach.php页面:
<?php
header("content-type:text/html;charset=utf-8");
$stu_name=empty($_GET['stu_name'])?"":$_GET['stu_name'];
$con=mysqli_connect('127.0.0.1','root','root','lening') or die('链接数据库失败');
$sql="select * from student join score on score.stu_id=student.stu_id where stu_name='$stu_name'";
$res=mysqli_query($con,$sql);
while($arr1=mysqli_fetch_assoc($res)){$data[]=$arr1;
}
?>
<table border="1"><tr><td>姓名</td><td>分数</td><td>考试时间</td></tr><?php if(empty($data)){ echo "";}else{foreach($data as $k=>$v){?><tr><td><?php echo $v['stu_name']?></td><td><?php echo $v['score']?></td><td><?php echo $v['ctime']?></td></tr><?php }}?>
</table>
searchScore.php页面:
<?php
header("content-type:text/html;charset=utf-8");
$score=empty($_GET['score'])?"":$_GET['score'];
$type=empty($_GET['type'])?"":$_GET['type'];$con=mysqli_connect('127.0.0.1','root','root','lening') or die('链接数据库失败');
if($type=='<'){$sql="select * from student join score on score.stu_id=student.stu_id where score<'$score'";
}else if($type=='>'){$sql="select * from student join score on score.stu_id=student.stu_id where score>'$score'";
}else{$sql="select * from student join score on score.stu_id=student.stu_id where score='$score'";
}
$res=mysqli_query($con,$sql);
while($arr1=mysqli_fetch_assoc($res)){$data[]=$arr1;
}
?>
<table border="1"><tr><td>姓名</td><td>分数</td><td>考试时间</td></tr><?php if(empty($data)){ echo "";}else{foreach($data as $k=>$v){?><tr><td><?php echo $v['stu_name']?></td><td><?php echo $v['score']?></td><td><?php echo $v['ctime']?></td></tr><?php }}?></table>
效果图:
二、最后一次考试成绩查询
(1)时间筛选为最近一次
(2)两表联查,学生考试信息
代码:
<?php
header("content-type:text/html;charset=utf-8");
//链接数据库
$con=mysqli_connect('127.0.0.1','root','root','lening')or die(mysqli_error());
//sql语句
$sqls = "select distinct stu_id from `score` ";
$result=mysqli_query($con,$sqls);
while($arr=mysqli_fetch_assoc($result)) {$data[]=$arr;}
foreach( $data as $k=>$v){$ids=$v['stu_id'];$sql = "select * from `student` join `score` on `score`.stu_id=`student`.stu_id where `score`.stu_id = $ids order by ctime desc limit 1 ";$res=mysqli_query($con,$sql);while($arr1=mysqli_fetch_assoc($res)) {$data1[]=$arr1;}
}
foreach($data1 as $k=>$v){$data1[$k]['stu_age']=date('Y')-date('Y',strtotime($v['stu_age']));
}
//print_r($data1);exit;
?>
<table border="1"><tr><th>学生id</th><th>姓名</th><th>性别</th><th>年龄</th><th>分数</th><th>入学时间</th><th>考试时间</th><th>点击发送邮箱</th></tr><?php foreach ($data1 as $k => $v) { ?><tr><td><?php echo $v['stu_id'];?></td><td><?php echo $v['stu_name'];?></td><td><?php echo $v['stu_sex'];?></td><td><?php echo $v['stu_age'];?></td><td><?php echo $v['score'];?></td><td><?php echo $v['stu_time'];?></td><td><?php echo $v['ctime'];?></td><td><input type="button" value="发送家长" οnclick="send(<?php echo $v['id']?>)"></td></tr><?php } ?>
</table>
效果图:
目前此博客优点是:成绩录入更加人性化,用户使用更加快捷,减少了多次提交
不足:功能单一
学生考试信息录入和最近一次考试成绩查询平台相关推荐
- 编写一段程序录入 N 个学生的信息包括姓名、性别、年龄和成绩;要求:1.按照成绩由小到大的顺序输出,如果成绩相同则按学号由小到大的顺序输出;2.计算 N 个学生成绩的平均值;
题目和要求: 编写一段程序录入 N 个学生的信息包括姓名.性别.年龄和成绩: 要求:1.按照成绩由小到大的顺序输出,如果成绩相同则按年龄由小到大的顺序 输出: 2.计算 N 个学生成绩的平均值: 注: ...
- javase(Properties集合及学生对象信息录入文本中案例)
1.Properties集合 Properties和IO流的结合使用 1 public void load(Reader reader) 2 public void store(Writer writ ...
- Java学生个人信息录入
编写 Java 程序显示学生的个人信息.定义类Student. 该类中应该有三个私有属性:姓名(name),年龄(age),性别(sex) 输入:第一行为一个数,表示录入学生个数 第二行依次为学生姓名 ...
- 学生信息录入java,基于java的学生信息管理系统
基于java的学生信息管理系统中分为多级角色管理:包括系统管理员.学生和老师几种权限,采用了开发技术JSP以及MYSQL数据库作为本系统的开发工具.主要包括新闻模块,考试模块,学生模块,教师模块,选课 ...
- 学籍信息管理系统c语言编程,学生学籍信息管理系统C语言设计.doc
学生学籍信息管理系统C语言设计 学生学籍信息管理系统 目录 1.设计目的与要求 2.总体设计 3.详细设计 4.调试分析 5.总结 6.答辩记录 7.教师意见 8.附录主程序 1.设计目的与要求: 1 ...
- C语言编写学生籍贯信息记录簿
学生籍贯信息记录簿 前言 这是本人第一次写博客,有不足之处请见谅. 本文是利用简单的C语言编写的学生籍贯信息记录簿,写这篇是为了记录学习过程,也为后来者提供一些参考和思路.我使用的平台为Visual ...
- (边写边更)用PHP简单的学生个人信息记录程序
史老师开学前布置的项目,用网页实现学生个人信息的增删查改,寒假时只看完了html和js,jQuery和PHP都处于现学现卖的状态,不过既然没要求交,那就瞎折腾吧. (2016.3.19)目前已实现功能 ...
- 求数学系或计算机系姓张的学生的信息,数据库原理实验三 - 图文
实验三.数据库的简单查询和连接查询实验 班级: 学号: 姓名: 日期:12月18日 1. 实验目的 了解SQL Server 查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句 ...
- 内蒙古高考2021年成绩查询,内蒙古招生考试信息网:2021年内蒙古高考查分入口、查分系统...
[摘要]为了方便内蒙古高考考生能及时查询到2021年高考成绩,高考频道特别整理了的内蒙古招生考试信息网2021年内蒙古高考成绩查询入口.查分系统,考生可在成绩公布时直接点击下面的链接进行查分,预祝大家 ...
最新文章
- Java并发编程-CountDownLatch
- 第十五届全国大学生智能汽车竞赛 车模检查手册
- python调用另一个类的返回值_python – 在OpenERP中调用另一个表单的方法返回值
- LeetCode Permutations II(有重复元素的全排列)
- JSTL(JSP 标准标签库)和EL表达式联合使用时,进行字符的比较
- java1.8的特性,java1.8新特性
- 第一次参加数学建模竞赛如何夺取一等奖
- python决策树id3算法_决策树ID3算法预测隐形眼睛类型--python实现
- ASP.NET MVC Action向视图传值之匿名类型
- 执行点击事件,第一次点击后,一切正常,第二次点击,执行两次,以此类推
- Css颜色和文本字体
- Halcon算子学习:xyz_to_object_model_3d
- mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿
- 四十个非常实用的轻量级JavaScript库
- asp分页类--添加支持重写功能
- Git学习小记之分支原理
- sql还原数据库备份数据库_有关数据库备份,还原和恢复SQL面试问题–第一部分
- 程序员Mac常用软件之效率工具
- centos arm-linux-gcc,CentOS 5.5下arm-linux-gcc交叉编译环境的搭建
- Kmalloc和Vmalloc的区别