效果图:

一.方法概要

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实现学生信息查询相关推荐

  1. java+SQL做学生信息管理系统(增删改查)

    java+SQL做学生信息管理系统(增删改查) [过程中需要用到的所有工具数据库以及数据库管理器等等] https://pan.baidu.com/s/1cLKJPKXauLCl-Vwah6wFIQ ...

  2. java写的学生信息查询系统_Java编写学生信息查询系统,报错!!!

    在窗口ClientFrame中有一个窗格,Newstudentinfo和Selectstudentinfo独立运行都没问题,但是在ClientFrame中只运行Selectstudentinfo,录入 ...

  3. 基于51单片机学生信息查询与显示

    设计内容 用51单片机.点阵式LED(或1602屏).4×4键盘以及串行接口组成学生信息的显示与查询系统设计.基本要求是在键盘输入学生姓名后,点阵LED屏能够滚动显示学生相关信息,至少两位同学信息,例 ...

  4. Mr.张小白(案例:学生信息查询系统的MyBatis的实现)

    学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...

  5. 【大学生软件测试基础】历年学生信息查询界面 - 正交表

    某系统"历年学生信息查询"的功能界面如下图所示,利用正交实验法对其设计测试用例. 任务1:根据上面的需求找出因子与水平: 任务2:根据因子与水平数,选择合适的正交表: 任务3: 根 ...

  6. javaweb项目实现学生信息查询

    一.开发环境配置 1.1 JDK环境 1.1.1 jdk下载 进入oracle官网 oracle 点击Resources 点击Downloads --> JDK 点击Java archive,并 ...

  7. javaWeb学生信息查询

    学生成绩查询系统 欢迎浏览 项目目录 com.zz.action com.zz.action.student com.zz.action.test com.zz.controller com.zz.d ...

  8. 洪君:查出“张”姓学生中平均成绩大于75分的学生信息查询出每门课程的成绩都大于80的学生

    查询出"张"姓学生中平均成绩大于75分的学生信息 表名:student_score  name course score  张青 语文 72  王华 数学 72  张华 英语 81 ...

  9. asp.net+sql数据库学生信息管理系统

    一款学生信息管理系统送给大家. 功能部分: 1.教师管理(添加,修改,删除,查看)2.学生管理(添加,修改,删除,查看)3.班级管理(添加,修改,删除,查看)4.学生成绩管理(添加,修改,删除,查看) ...

最新文章

  1. ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)
  2. 安装ipython时python setup.py egg_info错误的解决办法
  3. 使用EclEmma 插件 解析jacoco.exec文件
  4. 帮人取款每百元抽10元回扣,最终涉嫌诈骗罪被批捕
  5. 有关javabean的说法不正确的是_关于 JavaBean, 下列叙述中不正确的是 ( ) 。_学小易找答案...
  6. Mr.J--Java异常处理总结
  7. Verilog HDL中使用系统任务 $readmemh遇到问题及解决方法
  8. Java-Set、Map
  9. WQM软件使用说明书
  10. 基于uA741 PWM发生器
  11. 交换机下接路由器lan还是wan_无线路由器wan口未连接如何解决【解决方法】
  12. reg类型变量综合电路_verilog语言中wire型变量和reg 型变量的区别
  13. uniapp修改顶部标题
  14. 解决打开Excel会自动新建一个空表格
  15. 介绍一下xgb_XGB羽毛球app
  16. Oracle数据库:自然连接natural join,using语句,注意避免写交叉连接
  17. 又一次不成功的关于酷我的链接分析
  18. Oracle 回滚详解(rollback)
  19. 未来十年万亿美元的云“风口”,亚马逊云科技再次加速“起飞”
  20. python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~

热门文章

  1. 普元 AppServer 6.5 将springboot应用部署到应用服务器,上传文件时报错:Caused by: org.springframework.web.multipart.Multipar
  2. Golang连接Redis数据库
  3. ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)
  4. ARM Neon 编程笔记一(ARM NEON Intrinsics, SIMD运算, 优化心得)
  5. 随笔杂记(十)——C++:C4996报错解决方法
  6. 问答系统QA的评价指标MAP、MRR、Accuracy@N
  7. 超静音 无振动 | TRINAMIC的3D打印机解决方案
  8. 写宏遇到的问题:warning: backslash and newline separated by space - C
  9. scrapy学习(完全版)
  10. Android开发最佳实践