PHP 的基础语法_获取学生成绩案例| 学习笔记

简介: 快速学习 PHP 的基础语法_获取学生成绩案例。

开发者学堂课程【Ajax 前端开发入门与实战PHP 的基础语法_获取学生成绩案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/595/detail/8522


PHP 的基础语法_获取学生成绩案例

 

内容介绍:

网站的分类

二、获取学生成绩案例

 

一、网站的分类

1、静态网站

全部由 HTML 代码格式页面组成的网站,没有数据库的支持,在网站制作和维护方面工作量较大。

2、动态网站

动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站。

所谓的不同情况就是请求的参数不同请求分为 get 请求和 post 请求不同的请求有不同的特点,Get 请求,参数在 URL 后面,多个参数用 & 进行连接。

Post 请求参数在请求体中。在获取参数当中值的时候对于 php 使用多了下划线get 或者多了下划线 post 来进行参数值的获取

重点是要理解第一块和最后一块的理解。hs 一般情况下动态网站通过数据库进行架构。般动态网站体现在网页。

一般是以 asp, jsp, php, aspx 等结尾,动态网页以数据库技术为基础,可以大大降低网站维护的工作量,维护方便。

 

二、获取学生成绩案例

1、在 php 目录下创建一个文件夹命名为 scorescore 英文单词的含义是成绩的意思score 下面创建一个新的文件叫 getscore.html,这个是作为查询学生信息的入口先把标题写出来查询学生的成绩body 把相关信息也显示出来h1 标签

请在下列输入框中输入学生的考号进行查询,在它下面给它一个输入框应该可以想到输入完之后是需要点击一个按钮进行提交

所以需要给它一个 form 表单除了 action 还有一个 methodmethod 它有两个值一个是 get 一个是 post默认值是 get在 form 表单给它一个提示输入一个考号input 标签type=textname=code最后面输入一个换行最后给它一个 input type=submitname 不写因为这里是一个按钮输入 value= 查询接着点击查询按钮时会提交到一个界面由这个界面进行学生信息的具体查询提交到哪一个界面呢

可以在 getscore 同级目录下面创建一个新的文件命名为 result.php注意是以php 结尾的一个文件因为接下来要做的事情可能要查询数据库根据考号来查询数据库里面一个相关的信息来做界面具体的展示所以要以一个 php 的方式来进行一个文件的结尾需要做事情是根据学生的考号来查询数据库得到数据之后进行返回的一个操作对于 getscore 它需要访问的一个界面肯定就是 result.php 

代码如下

<! DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>查询学生的成绩</title>

</ head>

<body>

<h1>请在下列输入框中输入学生的考号进行查询:</h1>

<form action="result.php" method="get">

输入考号:<input type="text" name="code"><br>

<input type="submit" value="查询">

</ form>

</ body>

</html>

通过 get 方式进行请求测试一下界面的效果打开浏览器刷新一下有一个使用过的文件夹输入相关的一个信息点击

image.png

查询之后确实访问的就是 result.php 等于所输入的字符串

image.png 

需要注意 result.php php 的一个文件这个文件正常是由后端的开发师进行编写因为到时候需要在这个文件中查询数据库或者还有其他的一些复杂的操作但是这一部分工作应该是由后端的开发师完成的但是在后端开发师编写代码之前前端开发师可能需要先把相关的界面样式先给它写好可以在这个地方使用一些假数据界面的样式给它写好学生成绩结果的界面给它一个 divdiv 下面给它张三成绩如下div 下面给它一个 ulul 跟上很多个 li可能学生有很多门学科是需要展示的比如第一个语文112接着数学132最后是英语72这就是所写的界面完全是 html 界面

代码如下

< !DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>学生成绩结果</title>

</head>

<body>

<div>

<div>成绩如下</div>

<ul>

<li>珸文: 122分</li>

<li>数学: 132分</li>

<li>英珸: 72分</li>

</ul>

</div>

</body>

</html>

此时注意角色是前端工程师并不是后台工程师需要做的就是把相关的界面写好样式配好再由后端的开发师介入

首先 getscore 这个界面是前端工程师来写的getscore 的这个表单当中它将会提交到 result.php,result.php 是由后端工程师开发的但是在后端工程师开发之前是由前端开发师先把界面的结构写出来界面的样式配置出来可以测试一下刷新页面可以发现张三的成绩如下

image.png

如果认为样式不好看可以在 style 当中进行配置先把 ul 相关的样式配置一下list-stylenone 可以把小圆点去掉对于标题可以进行文字大小的操作在div当中 class=title把文字用红色进行表示输入 colorred再刷新界面会显示的好看些

代码如下

<!DOCTYPE html>

<html lang=" en">

<head>

<meta charset="UTF-8">

<title>学生成绩结果</title>

<style>

ul{

list-style: none;

color: red;

}

.title{

font-size: 20px;

}

</style>

</head>

<body>

<div>

<div class="title">张三成绩如下</div>

<ul>

<li>文: 122分</li>

<li>数学: 132分</li>

<li>英语: 72分</li>

</ul>

</div>

</body>

</html>

</head>

<body>

image.png

这个就是前端工程师所做的事情最先使用一些假数据把这个界面的效果做出来之后就是把这个界面给后端工程师后端的工程师会在前端工程师的界面之上做相关的 php 代码的编写php 代码有时候是可以和 html 代码进行结合使用的

现在就进行角色的转变实现 php 当中一些代码的结构注意现在的角色不是前端工程师是后台的工程师需要根据学生的考号查询数据库得到数据之后进行返回显示的一个操作所以可以写上 php 相关的一些代码在这里需要获取到传递过来的学生的考号学生的考号通过 url 的方式也就是 get 请求传递到result.php 当中通过 $code = $_ GET[" code" ] ;的方式获取到 url 当中的参数查询数据库先不把数据库相关的内容引入进来先用一些数据进行模拟用二维数组模拟准备一个模拟数据

注意的是按道理数据应该是从数据库获取的这里进行简单的处理接着可以往这个数字当中填充一些值用一个二维数组来模拟考生的具体信息也就是这个学生的考号是123,让它对应的依然是 array依然是数组但在数组当中可以把考号对应的学生信息展示出来比如第一个学生信息叫做张三接着是一个语文的成绩102第二个成绩数学89接着是英语成绩是143这是一个二维数组再来一个考生信息名字进行变化

代码如下

< ?php

//准备模拟数据,注意的是,按道理数据应该是从数据库获取的,这里进行简单的处理

$data = array();

$data["123"] = array("name"=>"张三” ," chinese"=>"103" ,"math"=>"89" , "english"=>"143");

$data["234"] =

array("name"=>"李四" , "chinese"=>"123", "math"=>"69",

"english"=>"43");

$data["345" ] = array("name"=>"王五" ,”chinese"=>"83",'math"=>"129" ,"english"=>"63"); T

$code = $_ GET[" code"];

//查询数据库

?>

现在有数据了再通过 get 的方式来获取传递过来的考生信息比如在这个地方输入123,点击查询

image.png

在链接中要获取到123,然后把123在数组当中进行下标索引的一个查找注意在使用变量的时候要加上 $ 符号$result 对应的就是这一条数据array("name"=>"张三” ,"

chinese"=>"103" ,"math"=>"89" , "english"=>"143");

找到了这一条数据之后接着就可以把它变活起来了张三不能写死成绩如下可以写死的是根据所传递过来的有所差异可能叫做张三可能叫做李四可能叫做王五

所以在这个地方需要使用到 $result 的值可以在 html 界面当中嵌入 php再加入一个 echo $result["name"] ,就可以把张三这个文字显示过来它会根据所传递过来的 code值而去加载对应的数据所以成绩都可以使用类似的方式来进行动态数据的一个变化输入语文成绩数学成绩英语成绩把对应信息补齐这就是后端工程师所需要做的事情它依赖于前端所写的界面依赖于前端所做的配置的样式它只需要做一件事就把里面的这些数据变活起来回到界面当中刷新一下输入123,张三的成绩就已经出现了

image.png

输入345,王五的成绩就显示出来了访问的依然是同一个 php 界面根据所请求的参数不同加载对应的一个数据

image.png

其实后端工程师还需要做一些考虑错误的事情比如随便说一个查询的地方它就报错了因为考号这样一个数字在数据库当中根本就不存在在这个地方需要考虑到考号不存在的情况以下这部分是在数据当中有学生的情况之下才需要进行的一个显示

<div>

<div·class="title">< ?php ' echo $result["name"]· ?>成绩如下</div>

<ul>

<li>语文: <?php ' echo $result["chinese"] ?>分</li>

<li>数学: <?php . echo $result[ "math"] ?>分</li>

<li>英语: <?php ' echo $result[ "english"] ?>分</li>

</ul>

</div>

如果没有这样一个学生的考号就需要做另一种显示所以这个地方必然会有一个条件就是判断 if else所以输入 if(array_ key_ exists(key, $data)) 判断一个数组是否存在小标索引所以 array 是 $data 要查询这样一个数组有没有 $code 这样一个索引$code 是传递过来的一个值现在要查询数组有没有这样一个下标索引有的话才要做界面显示把花括号去掉就是证明 if 下面的代码都属于if的条件判断可以再输入一个 php 标签进行结束这样只要满足条件就可以在界面中输出 divelse 代表并没有在数组中有这样一个字段再将花括号去掉在下面把花括号补全在中间就是属于 else 里面又是在 php 标签之外所以可以写html 的标签加一个 div 标签输入该学生考号不存在这样做完之后就做了一些兼容的处理

代码如下

<?php

if(array_ key_ exists($code, $data)){

$result=$data[$code ]; 把代码插入到这里面只有数组当中有这样一个下标索引才能通过下标索引拿到对应的数据

?>

<div>

<div·class="title">< ?php . echo . $result[ "name"]· ?>成绩如下</div>

<ul>

<li>语文: < ?php . echo· $result["chinese"] . ?>G</li>

<li>数学: <?php . echo . $result["math"]· ?>G</li>

<li>英语: < ?php . echo . $result["english"]· ?>G</li>

</ul>

</div>

< ?php

} else {

?>

<div>该学生考号不存在</div>

<?php ] ?>

< /body>

</html>

保存好后做测试输入123可以查询到张三的信息输入234可以查询到李四的信息再返回随意输入一个考号会显示该学生考号不存在也就是跑到一个 else {

?>

<div>该学生考号不存在</div>的分支当中这就是典型的 php 和 html 相互结合进行使用前端工程师和后端工程师是有分工的前端工程师主要做的是界面以及样式的配置把界面写完之后把相关的样式写完之后发送到后端工程师在此基础之上做一个 php 相关代码的一个编写操作会引入相关的一些操作这个就是典型的前端和后端结合进行使用的操作要注意的是在编写代码时候的一个角色变化对于 get 参数请求传递过来如果是使用 post 参数请求输入123发现 url 地址栏后面没有参数在请求体当中刷新以下的界面

image.png

在 headers 下面有一个 form data code=123,既然是通过 post 的请求来进行一个数据提交对于 result.php 里就不能通过 $ 下划线 get应该通过 $ 下划线 post 参数的一个获取回到上一个界面当中就可以得到一个正确结果的显示

image.png

Method 之后是写 get 还是 post 这个是由后端工程师决定的后端工程师如果在 $ 下划线 get 来获取到请求参数的值那在这个地方只能写 get 相反 post 也是所以很大的程度是取决于后端工程师它是用什么方式来获取数据在决定用什么方式来获取数据之后它会告诉前端工程师这一块的参数是用什么来提交的当得到这个信息之后就可以直接选择用 get 还是 post

相关文章
|
5天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
7天前
|
存储 Java 数据库连接
php学习笔记-代码基本语法-day01
本文是关于PHP编程语言的基础语法学习笔记,内容包括PHP的介绍、注释风格、数据类型、命名规范、常量和变量的使用,以及变量和常量相关的常用函数。文中详细解释了PHP的基本语法元素和一些易混淆的概念,如传值赋值与传址赋值、可变变量,以及如何检查变量是否已定义或为空。
php学习笔记-代码基本语法-day01
|
7天前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
7天前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
7天前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
7天前
|
JavaScript Java PHP
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
本文是第二天的PHP学习笔记,涵盖了PHP中运算符的使用、类型转换方式,以及打印输出语句的特点,展示了其相较于其他编程语言的一些特殊之处。
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
|
7天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
7天前
|
前端开发 PHP
php学习笔记-php文件表单上传-day06
本文介绍了PHP文件上传处理流程、预定义变量`$_FILES`的使用、文件上传状态代码以及文件上传实现函数。同时,通过一个文件上传的小例子,演示了文件上传表单的创建、文件上传表单处理的PHP页面编写以及运行测试输出。
php学习笔记-php文件表单上传-day06
|
7天前
|
JavaScript 程序员 PHP
php学习笔记-php自定义函数-day05
本文介绍了PHP自定义函数的创建、调用、参数赋值以及作用域和生命周期,还探讨了`global`和`static`关键字的使用,以及`return`、`exit`和`die`的不同用法。
|
7天前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。