上节课使用PHP和HTML代码完成了一个学生分数信息查询一览网页。
这节课来学习将数据存放到服务器的文本文件中,然后新增一个新建页面可以生成这些数据。
保持检索条件输入值
先来解决上节课的2个遗留问题:
1.页面初始化时没有数据,表头的宽度不对。
2.输入的查询条件在点击查询按钮之后不能记住,比如,选择了科目,点击查询之后,不能看到刚刚选择的是哪些科目,这样条件和结果就匹配不上。
第一个问题比较简单,只需要给表头的那行增加上设置宽度的CSS样式就可以了。
studentlist.php修改如下:
image
刷新网页:
image
第二个问题的解决办法:在<input type="text" name="studentname"/>这里增加一个 value="<?php echo _POST读取到用户输入的值之后,将值保存到变量$studentname里面,就可以实现点击查询按钮之后,可以保持上次用户输入的检索条件的值了。
studentlist_do.php修改如下:
image
studentlist.php修改如下:
image
image
刷新网页,输入检索条件:
image
点击查询按钮:
4-8-7.jpg
可以看到,所有的输入的查询条件数据都保持住了。
将数据存放在文件当中读取返回
来看一下检索的逻辑,目前还仅仅是一个最简单的根据姓名不同返回不同数据,这离真正的数据查询还很远。
首先,数据的存储肯定不能直接在代码里面写成固定的,肯定要保存在某个地方。那么接下来,就来实现将这些数据存储到文件当中去。然后做一个新建学生分数信息的页面,可以将用户输入的信息保存在这个文件中,然后一览查询页面就从这个文件中把数据读取出来,基本实现一个动态数据的管理功能。
先来将数据复制保存到一个文本文件studentdatas.txt中。
创建一个文本文件,将数据按照一行一个数据记录,字段之间用逗号分隔的形式输入。
分数信息调整一下,方便后面的检索条件查询。
studentdatas.txt修改如下:
image
然后修改php文件,将固定的数据定义修改为从这个文本文件读取数据。
读取的时候,注意进行字符串分割操作并设置到相应的键值上。
studentlist_do.php修改如下:
image
刷新网页,输入检索条件姓名为b:
image
点击检索按钮:
4-8-11.jpg
可以看到,显示的数据是文本文件中保存的值。
通过这样的方式,实现了程序逻辑和数据存储的分离,如果要修改显示数据,就很方便了,只需要改数据存储文件就好了,不需要修改程序逻辑了。
编写一个新建学生分数信息的页面
接下来,编写一个新建学生分数信息的页面,收集用户输入的信息,并追加保存到数据文本文件当中。
页面的输入控件的样式可以参考3-4这一节的样式。
新建2个文件studentcreate.php和studentcreate_do.php。
studentcreate.php修改如下:
image
4-8-13.jpg
student.css修改如下:
image
studentcreate_do.php修改如下:
image
为了写入数据逻辑正确,在studentdatas.txt最后增加一个空行:
4-8-16.jpg
为了不在查询页面出现查询出空行数据,修改studentlist_do.php:
image
将此文件部署到本地Web服务器目录下,注意修改studentdatas.txt的文件权限为全部可以读写:
image
打开浏览器访问此文件url:
image
然后每个项目都输入相应的的数据:
image
点击保存按钮:
image
可以看到网页显示保存好了,然后到服务器后台查看数据文件:
4-8-22.jpg
可以看到数据已经被添加到文本文件当中了。
然后到一览网页中,在姓名检索条件输入a,点击查询:
image
可以看到多出来了一条刚刚创建好的数据记录。
将新建网页链接到一览页面当中
然后修改一览页面,增加一个“新建学生分数信息”的按钮,点击按钮后新弹出一个Tab浏览器窗口显示新建页面。
studentlist.php修改如下:
4-8-24.jpg
刷新一览页面:
image
点击按钮之后:
4-8-26.jpg
可以看到通过这种方式将2个功能页面链接起来了。
修改查询逻辑根据条件进行筛选
之前的查询逻辑太简单,需要修改得更真实一些,可以根据输入的姓名进行模糊查询,也就是只要姓名包含了输入的文字则都显示出来,完全不包含则不显示。
例如姓名检索条件输入“张”,则将“张三丰”和“张无忌”给显示出来,其它人不显示。
修改查询逻辑,读取所有的学生记录信息,进行遍历,然后判断姓名是否包含搜索条件的字符串,如果包含则返回此条记录信息。
studentlist_do.php修改如下:
image
刷新一览网页,姓名输入“张”,点击查询:
image
利用新增页面,添加一条数据姓名为“张无忌”:
image
回到一览网页,姓名输入“张”,点击查询:
image
可以看到,正确的数据被检索出来了。
姓名检索条件修改为“段”,点击查询:
image
可以看到,正确的数据被检索出来了。
删除姓名检索条件的值,点击查询:
image
可以看到如果不输入条件,则默认全部数据检索出来。
完成其它查询条件
参照上面的方式,完成其它的检索条件。
性别的判断比较容易,直接等于男或者女即可,如果是全部,则不需要比较全部出来。
分数段的判断可以对分数进行判断即可。
科目的判断可以直接等于科目名称即可。
注意如果有多个条件复合查询的时候,多个条件之间是AND的关系,也就是要同时满足这些条件的数据才能显示。
那么可以先完成1个条件,筛选出的数据作为第2个条件的数据源,后续条件以此类推。
studentlist_do.php修改如下:
4-8-33.jpg
image
刷新网页,性别选择“女”,点击查询:
image
可以看到,符合条件的数据显示出来了。
性别选择“全部”,分数段选择“75-90”,点击查询:
4-8-36.jpg
可以看到,符合条件的数据显示出来了。
性别选择“全部”,分数段选择“全部”,科目选择“语文”和“音乐”,点击查询:
image
可以看到,符合条件的数据显示出来了。
姓名输入“张”,性别选择“全部”,分数段选择“全部”,科目选择“数学”,点击查询:
4-8-38.jpg
作者:零基础学编程by学哥
链接:https://www.jianshu.com/p/80ffa589e7ad
共同学习,写下你的评论
评论加载中...
作者其他优质文章