sql实现学生信息查询
效果图:
一.方法概要
1.字符串拼接 implode
2.多表查询
3.关联数组键值对使用
二.详解:
1.插入数据时由于涉及多次操作考虑自写insert()函数,提高效率
function insert($table,$arr,$link)
{$keys=implode(',',array_keys($arr));//根据逗号分割数组的key值$vals="'".implode("'".','."'",array_values($arr))."'";//字符串拼接数组的value值$sql="insert into {$table}({$keys}) values ({$vals})";if(mysqli_query($link,$sql)){return 1;}else{return 0;}}
2.多表查询(引用php变量要加双引号)
步骤:
(1)select 先确定要筛选的变量
(2)from 相应的表
(3)where 筛选的条件
= 相等
and 且
or 或
(4)mysqli_fetch_assoc提取元素 $row['values'] //关联数组键值对使用
$sql = "select a.s_id,c.s_namefrom test.s_c a,test.course b,test.stu_info c where b.c_Name='{$course}' and b.c_No=a.c_no and a.score<60 and a.s_id=c.s_id";//多表查询
$result = mysqli_query($link, $sql);
if ($result)
{ $count = 0;echo "<table><caption>该课程不及格的学生</caption>";echo "<tr><th>学号</th><th>姓名</th>";while ($row = mysqli_fetch_assoc($result)){ //取数据echo "<tr><td>{$row['s_id']}</td><td>{$row['s_name']}</td></tr>";++$count;}
}
完整源码:
connect.php
<?php
function connect()
{$link = mysqli_connect(HOST, HOSTNAME, PWD)or die(mysqli_connect_error());
//2、选择数据库mysqli_select_db($link, DB_NAME) or die(mysqli_error($link));
//3、设置字符集mysqli_set_charset($link, DB_CHAR);return $link;
}
function insert($table,$arr,$link)
{$keys=implode(',',array_keys($arr));$vals="'".implode("'".','."'",array_values($arr))."'";$sql="insert into {$table}({$keys}) values ({$vals})";if(mysqli_query($link,$sql)){return 1;}else{return 0;}
}
php执行代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>$Title$</title>
</head>
<body></body>
<?php
require('./config.php');
require('./connect.php');
$link=connect();
$id=$_POST['id'];
$course=$_POST['course'];
if($id) {$FLAG = 0;$sql = "select s_id from test.stu_info where s_id='{$id}';";$result = mysqli_query($link, $sql);if (!mysqli_fetch_assoc($result)) {echo "<script>alert('该学号不存在!请重新输入')</script>";echo "<script>history.go(-1)</script>";} else {$sql = "select a.s_id,b.c_Name from test.s_c a,test.course b where a.c_no=b.c_No and a.s_id='$id'";$result = mysqli_query($link, $sql);echo "<table><caption><h2>该学生所选课程</h2></caption>";echo "<tr><th>学号</th><th>课程</th></tr>";while ($row = mysqli_fetch_assoc($result)) {echo "<td>{$row['s_id']}</td>"; //关联数组键值对使用echo "<td>{$row['c_Name']}</td>";echo "</tr>";}}
}
if ($course) {//根据课程名 筛选出成绩不合格的学生//根据课程名 选出对应的课程id 再根据课程 id 选出对应的学生id->选出name$sql = "select c_Name from test.course where c_Name='{$course}'";$flag = 0;$result = mysqli_query($link, $sql);if (!mysqli_fetch_assoc($result)) {echo "<script>alert('该课程不存在!请重新输入')</script>";echo "<script>history.go(-1)</script>";} else {$sql = "select a.s_id,c.s_namefrom test.s_c a,test.course b,test.stu_info c where b.c_Name='{$course}' and b.c_No=a.c_no and a.score<60 and a.s_id=c.s_id";//多表查询$result = mysqli_query($link, $sql);if ($result) {$count = 0;echo "<table><caption>该课程不及格的学生</caption>";echo "<tr><th>学号</th><th>姓名</th>";while ($row = mysqli_fetch_assoc($result)) {echo "<tr><td>{$row['s_id']}</td><td>{$row['s_name']}</td></tr>";++$count;}if ($count == 0) {echo "<script>alert('该课程没有不及格人数!')</script>";echo "<script>history.go(-1)</script>";}} else {echo "<script>alert('查询失败!')</script>";echo "<script>history.go(-1)</script>";}}
}
表单html代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css"></style><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<form name="f1" action="CST20048-WWQ 2.php" method="post"><table><tr><td>输入学号查询所选课程:<input type="text" name="id"><input type="submit" value="选课查询" ></td></tr><tr><td>请输入课程名称:<input type="text" name="course"><input type="submit" value="不及格查询" ></td></tr></table>
</form>
</body>
</html>
OK!
sql实现学生信息查询相关推荐
- java+SQL做学生信息管理系统(增删改查)
java+SQL做学生信息管理系统(增删改查) [过程中需要用到的所有工具数据库以及数据库管理器等等] https://pan.baidu.com/s/1cLKJPKXauLCl-Vwah6wFIQ ...
- java写的学生信息查询系统_Java编写学生信息查询系统,报错!!!
在窗口ClientFrame中有一个窗格,Newstudentinfo和Selectstudentinfo独立运行都没问题,但是在ClientFrame中只运行Selectstudentinfo,录入 ...
- 基于51单片机学生信息查询与显示
设计内容 用51单片机.点阵式LED(或1602屏).4×4键盘以及串行接口组成学生信息的显示与查询系统设计.基本要求是在键盘输入学生姓名后,点阵LED屏能够滚动显示学生相关信息,至少两位同学信息,例 ...
- Mr.张小白(案例:学生信息查询系统的MyBatis的实现)
学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...
- 【大学生软件测试基础】历年学生信息查询界面 - 正交表
某系统"历年学生信息查询"的功能界面如下图所示,利用正交实验法对其设计测试用例. 任务1:根据上面的需求找出因子与水平: 任务2:根据因子与水平数,选择合适的正交表: 任务3: 根 ...
- javaweb项目实现学生信息查询
一.开发环境配置 1.1 JDK环境 1.1.1 jdk下载 进入oracle官网 oracle 点击Resources 点击Downloads --> JDK 点击Java archive,并 ...
- javaWeb学生信息查询
学生成绩查询系统 欢迎浏览 项目目录 com.zz.action com.zz.action.student com.zz.action.test com.zz.controller com.zz.d ...
- 洪君:查出“张”姓学生中平均成绩大于75分的学生信息查询出每门课程的成绩都大于80的学生
查询出"张"姓学生中平均成绩大于75分的学生信息 表名:student_score name course score 张青 语文 72 王华 数学 72 张华 英语 81 ...
- asp.net+sql数据库学生信息管理系统
一款学生信息管理系统送给大家. 功能部分: 1.教师管理(添加,修改,删除,查看)2.学生管理(添加,修改,删除,查看)3.班级管理(添加,修改,删除,查看)4.学生成绩管理(添加,修改,删除,查看) ...
最新文章
- ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)
- 安装ipython时python setup.py egg_info错误的解决办法
- 使用EclEmma 插件 解析jacoco.exec文件
- 帮人取款每百元抽10元回扣,最终涉嫌诈骗罪被批捕
- 有关javabean的说法不正确的是_关于 JavaBean, 下列叙述中不正确的是 ( ) 。_学小易找答案...
- Mr.J--Java异常处理总结
- Verilog HDL中使用系统任务 $readmemh遇到问题及解决方法
- Java-Set、Map
- WQM软件使用说明书
- 基于uA741 PWM发生器
- 交换机下接路由器lan还是wan_无线路由器wan口未连接如何解决【解决方法】
- reg类型变量综合电路_verilog语言中wire型变量和reg 型变量的区别
- uniapp修改顶部标题
- 解决打开Excel会自动新建一个空表格
- 介绍一下xgb_XGB羽毛球app
- Oracle数据库:自然连接natural join,using语句,注意避免写交叉连接
- 又一次不成功的关于酷我的链接分析
- Oracle 回滚详解(rollback)
- 未来十年万亿美元的云“风口”,亚马逊云科技再次加速“起飞”
- python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~
热门文章
- 普元 AppServer 6.5 将springboot应用部署到应用服务器,上传文件时报错:Caused by: org.springframework.web.multipart.Multipar
- Golang连接Redis数据库
- ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)
- ARM Neon 编程笔记一(ARM NEON Intrinsics, SIMD运算, 优化心得)
- 随笔杂记(十)——C++:C4996报错解决方法
- 问答系统QA的评价指标MAP、MRR、Accuracy@N
- 超静音 无振动 | TRINAMIC的3D打印机解决方案
- 写宏遇到的问题:warning: backslash and newline separated by space - C
- scrapy学习(完全版)
- Android开发最佳实践