原标题:0063 PHP编程编写学生分数信息编辑和删除功能网页

上节课完成了一览查询页面和新建信息页面。

这节课继续完成编辑信息页面和删除数据功能。

编写一个编辑学生分数信息的页面

一般一个信息管理功能是从创建数据开始,然后可以一览查询,还有必须的功能包括修改这些数据以及删除这些数据。

这样4个功能就构成了一个完整的信息管理功能。

接下来编写一个编辑学生分数信息的页面。

新建2个文件studentedit.php和studentedit_do.php。可以将studentcreate.php复制粘贴后改名,然后修改某些地方。

studentedit.php修改如下:

studentedit_do.php修改如下:

注意此页面和创建功能页面的不同,就是学生ID是需要前一个页面传递过来的参数,否则就不知道应该编辑哪一个学生记录了。

将此文件部署到本地Web服务器的目录下,然后新开一个浏览器窗口访问此url,注意需要带上一个学生ID的参数信息:

可以看到,程序根据传递的ID去数据文件 中读取出对应的其它信息,并默认显示在可编辑的输入控件中了。

注意第一个ID是不可以编辑的。

然后修改这些信息:

然后点击保存按钮:

可以看到,返回信息说明数据修改成功,查看服务器后台的数据文件:

可以看到数据已经更新成功。

然后回到一览查询页面,点击查询按钮:

可以看到,刚才更新的数据显示在一览当中了。

将编辑网页链接到一览页面当中

由于编辑功能是针对一个具体的学生记录,因此需要将此链接放置在一览当中。

将每一行学生的姓名修改为一个链接,链接的url就是对应的编辑网页的url,传递的参数就是学生ID。

studentlist.php修改如下:

刷新一览页面,点击查询:

可以看到每一个姓名都是一个链接,点击此链接,弹出了一个新的网页窗口,进入编辑页面:

点击另外一个学生的姓名,进入对应的学生信息编辑:

增加删除功能

还差最后一个删除功能,就可以完成一个完整的数据管理功能了。

修改编辑页面,在保存按钮旁边增加一个删除按钮,然后根据fromtype区分来处理相应的删除逻辑。

删除逻辑就是遍历数据文件,根据ID找到对应的数据行,然后将此行数据从文本文件当中删除。

studentedit_do.php修改如下:

因为删除功能需要慎重一些,因此在点击此按钮的时候,需要增加一个确认的过程,使用Java实现:

studentedit.php修改如下;

刷新一览页面,点击某个学生的姓名,进入编辑页面:

点击删除按钮:

弹出确认窗口,点击“确定”:

可以看到弹出了提示信息“删除数据成功”,点击确定按钮后此窗口关闭。

查看服务器后台的数据文件:

可以看到删除的数据已经不存在了。

然后回到一览页面,点击查询:

可以看到刚才删除的数据已经看不到了。

重新开始完整测试

所有功能都完成之后,可以将测试数据全部删除,重新开始完整的测试。

进入服务器后台,使用文本编辑器打开studentdatas.txt文件,删除所有的数据:

打开浏览器,按照一下的次序进行测试:

1.进入一览页面,应该查询不到记录

2.输入不同的条件,应该都查询不到记录

3.进入新建页面,输入一个记录,关闭新建页面

4.进入一览页面,针对每一个单独的条件,测试查询到0个记录和1个记录的情况

5.点击姓名进入编辑页面,修改数据,保存后关闭编辑页面

6.进入一览页面,查询数据应该有变化

7.点击姓名进入编辑页面,删除数据后关闭页面

8.进入一览页面,应该查询不到记录

9.通过新建页面,创建不同的记录多条

10.进入一览页面,测试不同条件的组合查询出相应的记录

更方便的方法在哪里

前面完成了一个完整的数据信息维护的功能,使用的方式是读写文本文件的方式。

使用这种方式有很大的局限性,例如:

1.如果需要操作很多个数据文件,很麻烦,而且很多操作都是类似的重复,仅仅是文件名和数据字段不一样。

2.如果有多个数据文件有关联关系,需要同时操作,无法保证数据的完整性和一致性。

3.如果文件系统突然出错,没有数据容错和纠正机制。

4.如果网页是多人同时访问,多个进程同时操作文件,会产生文件锁住的问题。

当然,还有其它更多的问题,这里就不一一列出。

那么,针对这样非常共通性的问题,有没有更好的解决方案呢?

在IT行业可以使用数据库来解决以上的需求。

数据库就是对数据进行结构化存储和管理的仓库。

主要的目的就是通过统一的接口方式来存储和管理数据。

仓库提供了数据的创建,读取,编辑,删除等通用型功能。

可以使用SQL结构化查询语言对数据库进行访问。

后面几节课将对数据库和SQL进行详细说明,并将学生信息数据修改为使用数据库来存储管理。返回搜狐,查看更多

责任编辑:

php编写一个学生类_0063 PHP编程编写学生分数信息编辑和删除功能网页相关推荐

  1. JAVA 编写一个员工类,成员变量和成员方法自拟,编写一个测试类

    课后习题练习 3.4 编写程序实现以下功能: (1).员工类(Emploee):c=成员变量包含员工号和员工姓名,成员方法包含构造方法和输出方法(输出员工信息). (2). 部门主管类(Manager ...

  2. 本关任务:编写一个Point类,有x、y两个属性。编写一个PointDemo类,并提供一个distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对

    #java编程基础 以后会时常更新java编程题,分享所遇之难,答疑解惑,共同努力. 本关任务:编写一个Point类,有x.y两个属性.编写一个PointDemo类,并提供一个distance(Poi ...

  3. java编写计算类加减乘除_老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java...

    导航:网站首页 > 老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java 时间:2019-4-10 老师要求张浩使用面向对象的思想编 ...

  4. 定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法。 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值。

    定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法. 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值. public cla ...

  5. 【java】编写一个圆柱体类Cylinder,它继承于Circle类

    编写一个圆柱体类Cylinder,它继承于上面的Circle类.还拥有: ①一个成员变量 double hight(私有,浮点型): // 圆柱体的高: ②构造方法 Cylinder (double ...

  6. 编写一个圆类Circle

    编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型): // 存放圆的半径: ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) ...

  7. 编写一个程序。要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件“data.txt”中,然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出他们的平均数,然

    编写一个程序.要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件"data.txt"中,然后再编写一个程序,从文件"data.txt"中读取这5 ...

  8. .设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示: 姓名 成绩 刘德华 85 张学友 100 刘杰 65 章子怡 58 周迅 76 将以上5个对象

    .设计一个Student类,该类中包括学生的姓名和成绩.创建Student类的5个对象,如下所示: 姓名 成绩 刘德华 85 张学友 100 刘杰 65 章子怡 58 周迅 76 将以上5个对象放入A ...

  9. java编写一个圆环类Ring_编写一个圆环类ring的java程序

    <编写一个圆环类ring的java程序>由会员分享,可在线阅读,更多相关<编写一个圆环类ring的java程序(1页珍藏版)>请在金锄头文库上搜索. 1.编写一个圆环类 Rin ...

  10. 2-3 编写一个三角形类

    编写一个三角形类,能根据输入的3个double类型数据构造三角形对象,定义三个构造方法. 如果这3个数据满足构成三角形的条件,直接构造三角形.否则,如果3个数的最大值大于0,则自动构造以最大值为边的等 ...

最新文章

  1. Newtonsoft.Json.dll 本地调用正常,服务器调用不正常
  2. 搞java不细心_Java 2 (基础总结)
  3. 重磅!神策客户服务中心升级,5 年,价值释放加速度
  4. c++中实现delphi的按类名生成类对象
  5. 海龟交易法则01_玩风险的交易者
  6. Android - 返回上一个界面finish()方法
  7. 3:基于乐观锁(两种)控制并发: version、external锁
  8. kdj买卖指标公式源码_买卖点KDJ版指标详解 通达信通达信KDJ
  9. 能上天的代码? NASA 火星无人机飞行控制系统开源了
  10. CSS3实现缺角矩形,缺角边框以及折角矩形
  11. AS连接MUMU模拟器
  12. ESP32实践FreeRTOS
  13. Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台
  14. mysql 图片路径用什么类型_mysql数据库怎么存图片路径
  15. word常用技巧教程
  16. java 判断字符串重排后是否等于另一个字符串,包括空格符
  17. Office这么多版本傻傻分不清,到底哪个版本好用?
  18. 菌外膜囊泡包载的阿霉素纳米粒|巨噬细胞膜囊泡包四氧化三铁二氧化硅纳米粒
  19. 常见的几种web容器(Apache、Nginx、Tomcat)
  20. Excel地址 C语言

热门文章

  1. 降低大数据分析门槛,HashData打造云端数据仓库
  2. 【预测模型】基于matlab离散状态空间模型模拟预测控制仿真系统(单输入单输出)【含Matlab源码 1537期】
  3. 毕设题目:Matlab表盘识别
  4. 【优化分类】基于matlab GA优化GRNN超参数分类【含Matlab源码 1399期】
  5. 【图像隐写】基于matlab DCT数字水印添加+提取+干扰【含Matlab源码 803期】
  6. 【优化求解】基于matlab遗传算法求解资源配置优化问题【含Matlab源码 436期】
  7. 获得学士学位的机器学习工程工作
  8. python:argsort(返回元素排序后的索引值)
  9. docker mysql 备份_docker mysql数据备份xtrabackup
  10. 我的世界java营火如何合成_我的世界:营火在1.15版本中得到加强?它的六个用途别忘了!...