桂林理工大学南宁分校
《PHP网站开发实例教程》
教学设计
课程名称  PHP网站开发实例教程
授课年级:    2014年级       
授课学期: 2015-2016学年第一学期
教师姓名:        罗锦光       
2015 8 31
课题名称
第3章 PHP操作数据库
计划课时
按教学计划进行相应分配
内容分析
任何一种编程语言都需要对数据进行处理,PHP语言也不例外。PHP所支持的数据库类型较多,在这些数据库中,由于MySQL的跨平台性、可靠性、访问效率较高以及免费开源等特点,备受PHP开发者的青睐,一直以来被认为是PHP的“最佳搭档”。本章将通过开发企业员工管理系统的案例,对PHP如何操作MySQL数据库进行详细讲解。
教学目标
掌握PHP访问数据库的基本步骤,能够对访问过程进行描述;
掌握mysql扩展,会使用PHP对MySQL数据库进行增删改查操作;
掌握基础业务逻辑,熟练使用PHP操作MySQL获取指定数据;
重点及措施
教学重点:处理结果集、排序功能、搜索功能、数据分页、数据添加与修改。
措施:通过上机操作加强学习和补充案例进行巩固。
难点及措施
教学难点:排序功能、搜索功能、数据分页、数据添加与修改。
措施:通过上机操作加强学习和补充案例进行巩固。
教学方式
教学采用教师课堂讲授为主,使用教学PPT讲解。
第一课时
(【案例11】展示员工信息)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,复习前两章知识
1、请简述PHP、Apache和MySQL的程序开发中的作用
答案:
PHP用于处理服务器端脚本,Apache用于提供Web访问服务,而MySQL是用于管理数据的。对一个网站而言,数据是非常宝贵的,如电子商务网站。
2、请说出MySQL数据库中对数据表的基本操作及命令。
答案:
增:insert into <表名> [(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];
删:delete from 表名 where 表达式;
改:update 表名 set 字段=新值,… where 条件;
查:select <字段1, 字段2, ...> from < 表名 > where < 表达式 >;
说明:教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
案例描述
在员工管理系统中,展示员工基本信息是十分重要的功能。该功能可以帮助公司更好的管理员工,例如可以通过查看员工基本信息来确定员工的工龄,也可以快速查某个员工,得知其、家庭住址等,接下来我们就来开发展示员工信息功能。
案例讲解
案例分析
创建员工信息表,该表用于保存员工的详细信息。
向员工表中添加数据,用于测试员工信息展示功能。
为了让PHP能够操作mysql数据库,因此在php.ini配置文件中开启mysql扩展。
通过mysql扩展提供的mysql_connect()函数来连接数据库。
设置字符集和选择数据库,用于指定字符集和要操作的数据库。
编写SQL查询语句,并使用mysql扩展提供的mysql_query()函数执行,取得结果集。
使用mysql_fetch_assoc()函数处理结果集,然后保存到数组中。
创建视图文件,将处理后的员工信息显示到页面中。
案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:在案例讲解的过程中,教师可适时停下来,让学生自行尝试。小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
知识点讲解
总结知识点
php修改数据库内容
教师和学生一起总结在案例中涉及到的知识点,主要包括“连接和选择数据库”、“执行SQL语句”、“处理结果集”等。
教师根据学生学习情况补充除案例以外的知识点“数据库扩展”和“释放资源”,同时培养学生的良好学习习惯,一起查看PHP手册学习指导。
讲解“数据库扩展”
(1)、教师展示PPT对不同“数据库扩展”进行讲解,并指出它们的不同。
(2)、教师使用phpinfo()函数查看开启不同“数据库扩展”成功的情况。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“连接和选择数据库”
(1)、教师通过代码对“连接和选择数据库”的使用进行演示,同时讲解注意事项。
(2)、教师展示PPT对“连接和选择数据库”的相关函数进行归纳总结。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“执行SQL语句”
    (1)、教师通过代码演示“执行SQL语句”的使用。
(2)、教师展示PPT对“执行SQL语句”的函数进行讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“处理结果集”
    (1)、教师展示PPT对“处理结果集”的各个函数进行讲解。
(2)、教师通过代码对“处理结果集”的函数使用进行演示。
(3)、通过演示结果,让学生总结归纳各“处理结果集”函数的特点。
(4)、学生练习,教师巡视,对疑难问题进行解答。
讲解“释放资源”
    (1)、教师展示PPT对“释放资源”的必要性进行讲解。
(2)、教师对“释放资源”进行代码演示,及提醒学生使用时的注意事项。
(3)、学生练习,教师巡视,对疑难问题进行解答。
阶段小结
小结
重点:连接和选择数据库、执行SQL语句、处理结果集。
答疑
教师询问学生对于知识点还有什么不理解的地方。针对学生不理解的知识点给与解释。
巩固练习
巩固“展示员工信息”的制作
学完知识点后,让学生再制作一次“展示员工信息”。以此使学生更熟练地掌握“数据库扩展”、“连接和选择数据库”、“执行SQL语句”、“处理结果集”、“释放资源”等知识点的使用。
通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
布置作业
完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
预习3.2节【案例12】员工信息排序。
复习前面学过的知识点和案例,加强巩固。
第二课时
(【案例12】员工信息排序)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,复习上节课内容
1、请简述PHP中的数据库扩展及特点
答案:
mysql扩展:是设计开发允许PHP应用与MySQL数据库交互的早期扩展,它提供了一个面向过程的接口,针对MySQL4.1.3或更早版本设计的。因此,这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进行交互,但并不支持后期MySQL服务端提供的一些特性。缺点:不安全。
mysqli扩展:是mysql扩展的增强版,可以用于使用MySQL4.1.3或更新版本中新的高级特性。其特点为:面向对象接口 、prepared语句支持、多语句执行支持、事务支持、增强的调试能力、嵌入式服务支持 、预处理方式完全解决了sql注入的问题。不过其缺点就是只支持mysql数据库。
PDO扩展:是PHP Data Objects的缩写,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要连接的数据库服务器系统类型。可以在任何需要的时候无缝切换数据库服务器。
2、请简述mysql扩展中处理结果集的函数(至少3个)
答案:
mysql_fetch_row()函数:从结果集中读取出一条数据,以索引数组的形式返回。
mysql_fetch_assoc()函数:从结果集中读取出一条数据,以关联数组的形式返回。
mysql_fetch_array()函数:将结果集中的数据分别以索引数组和关联数组的形式返回。
mysql_fetch_object()函数:将结果集中的数据以对象的形式返回。
说明:教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
案例描述
在录入员工信息数据时,员工的所属部门、入职时间等都是不可预料的。因此员工信息表中的员工数据,展示到页面中是没有任何顺序可言的。而大量的员工信息无序地排列显示,对用户查看员工信息很不方便。为解决这类问题,就可以通过为特定字段添加排序功能来对员工信息进行排序显示。接下来就在【案例11】的基础上,为员工信息表中的“所属部门”和“入职时间”添加排序功能,来实现员工信息的排序显示。
按照入职时间进行倒序排序,效果如下所示。
案例讲解
案例分析
向员工表添加更多测试数据,用来更直观的展现排序功能。
修改视图文件,为员工表的“所属部门”及“入职时间”创建排序链接。
定义合法排序字段,用于验证请求的排序字段是否为规定的排序字段。
把参数信息与定义的合法排序字段进行匹配,完成排序的SQL语句。
更新排序链接的排序状态值,完成正序排序和倒序排序的切换。
判断是否需要排序,如果需要则组合order by子句。
创建视图文件,将处理后的员工信息显示到页面中。
案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:在案例讲解的过程中,教师可适时停下来,让学生自行尝试。小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
知识点讲解
总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“order by”、“in_array()”、“isset()”等。
讲解“order_by”
(1)、教师与学生互动:让学生按身高从低到高的顺序进行排队,再按身高从高到低的顺序进行排队,从而引出使用“order by”可以进行升序和降序排序的方式。
(2)、教师通过代码演示“order by”的使用及注意事项。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“in_array()”
(1)、教师展示PPT对“in_array()”进行讲解。
(2)、教师通过代码对“in_array()”的使用进行演示。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“isset()”
(1)、教师针对“isset()”和“empty()”进行代码对比演示,让学生归纳各自特点。
(2)、教师展示PPT对“isset()”的使用以及注意事项进行详细讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
阶段小结
小结
重点:order by、isset()。
易错点:注意“isset”与“empty()”的区别。
答疑
教师询问学生对于知识点还有什么不理解的地方。针对学生不理解的知识点给与解释。
巩固练习
巩固“员工信息排序”的制作
学完知识点后,让学生再制作一次“员工信息排序”。以此使学生更熟练地掌握“order by”、“in_array()”、“isset()”等知识点的使用。
通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
布置作业
完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
预习3.3节【案例13】员工信息搜索。
复习前面学过的知识点和案例,加强巩固。
第三课时
(【案例13】员工信息搜索)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,复习上节课内容
1、请简述排序的语法规则
答案:
SELECT 字段名1,字段名2,……
FROM 表名
ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC]……
说明:教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
案例描述
员工排序功能可以帮助用户快速将员工数据按照一定规律排列显示,但是用户仍然需要面对大量的信息数据,这在进行员工筛选的时候非常不便。因此还需要有一种快捷方法,可以根据某些条件,进行快速查询,仅把符合查询条件的数据从数据表中查询出来并输出到页面中。这就是员工信息搜索功能,接下来我们在【案例11】的基础上,添加信息搜索功能。
通过向搜索框输入查询条件,例如搜索所有名字中带“小”字的员工数据,查询结果如下图所示。
案例讲解
案例分析
为视图页面添加搜索表单,用来传递搜索条件。
获取查询条件,对表单提交的查询关键字进行安全处理,最后组成where条件。
生成SQL语句,执行并获取结果集,处理结果集以便显示。
载入html模板文件,显示最终搜索结果。
案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:在案例讲解的过程中,教师可适时停下来,让学生自行尝试。小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
知识点讲解
总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“like”、“mysql_real_escape_string()”等。
讲解“mysql_real_escape_string()”
(1)、教师展示PPT对“mysql_real_escape_string()”转义SQL语句中的特殊字符进行讲解。
(2)、教师通过代码对未进行转义的SQL语句(含有特殊字符),与使用函数“mysql_real_escape_string()”进行转义后的SQL语句进行对比演示,让学生进行总结归纳。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“like”
(1)、教师与学生进行互动:打开浏览器,输入“php”,看到如下效果。
从而引入使用“like”可以进行模糊搜索。
(2)、教师通过代码对“like”的使用进行演示。
(3)、学生练习,教师巡视,对疑难问题进行解答。
阶段小结
小结
重点:mysql_real_escape_string()、like。
答疑
教师询问学生对于知识点还有什么不理解的地方。针对学生不理解的知识点给与解释。
巩固练习
巩固“员工信息搜索”的制作
学完知识点后,让学生再制作一次“员工信息搜索”。以此使学生更熟练地掌握“mysql_real_escape_string()”、“like”等知识点的使用。
通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
布置作业
完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
预习3.4节【案例14】分页显示信息和3.5节【案例15】添加与修改信息。
复习前面学过的知识点和案例,加强巩固。
第四课时
(【案例14】分页显示信息、【案例15】添加与修改信息)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,复习上节课内容
1、当用户输入的用户名中含有特殊字符(比如:单引号)时,请问如何进行处理
答案:mysql_real_escape_string()
2、以emp_info表为例,从emp_info表中选取姓名中不包含“李”的所有人
答案:select * from `emp_info` where `e_name` not like '%李%'
说明:教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
【案例14】分页显示信息
案例描述
公司的员工通常有数百人甚至上千人,这么多的员工数据一次性查询并显示的话,不仅效率不高而且没有意义。为了提高查询效率和用户体验,常用的做法就是将数据进行分页显示,每一页显示指定数量的员工信息,当需要查看更多员工信息时,点击“下一页”进行翻页查看即可。接下来就在【案例11】的基础上,进行分页显示信息功能的开发。
案例讲解
案例分析
修改showList.php文件,使用limit子句实现分页获取数据。
创建页码链接,通过页码链接传递页码信息。
计算最大分页数,并通过$_GET获取当前请求的页码信息。
读取结果集,对数据进行处理,最后载入视图以显示数据。
在视图页面中,添加创建好的页码链接。
案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:在案例讲解的过程中,教师可适时停下来,让学生自行尝试。小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
知识点讲解
总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“limit”。
教师根据学生学习情况补充除案例以外的知识点“分页链接生成函数”,同时培养学生的良好学习习惯,一起动手验证。
讲解“limit”
(1)、教师对“limit”使用代码进行演示。
(2)、教师展示PPT对“limit”的使用进行归纳讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“分页链接生成函数”
(1)、教师通过代码对“分页链接”的实现,与封装成函数的“分页链接”进行对比演示,讲解各自的特点。
(2)、教师展示PPT对“分页链接生成函数”进行讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
阶段小结
小结
重点:limit分页链接生成函数
答疑
教师询问学生对于知识点还有什么不理解的地方。针对学生不理解的知识点给与解释。
【案例15】添加与修改信息
案例描述
在管理员工信息时,对员工信息的添加与修改,同样是十分常见的功能。有时员工的内部岗位变动或者员工的离职,都需要使用到这些功能。接下来就在【案例11】的基础上,增加“添加员工信息”与“修改员工信息”的功能。
修改员工信息,如下图所示:
案例讲解
案例分析
编写公用函数库文件,封装常用的数据库操作。
修改showList.php文件,引入公共函数库文件,简化程序代码。
修改list_html.php文件,增加“添加员工”的功能链接。
编写员工添加页面,通过表单让用户输入新员工信息。
编写添加员工功能,用来处理POST提交的员工数据并组成SQL语句以便添加。
通过GET参数传递员工ID,实现员工修改功能。
案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:在案例讲解的过程中,教师可适时停下来,让学生自行尝试。小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
知识点讲解
总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“添加数据”、“修改数据”。
讲解“添加数据”
(1)、教师使用代码演示“添加数据”的实现过程,并讲解注意事项。
(2)、教师展示PPT对“添加数据”的实现步骤进行归纳总结。
(3)、学生练习,教师巡视,对疑难问题进行解答。
讲解“修改数据”
(1)、教师通过代码演示“修改数据”的实现过程。
(2)、教师展示PPT对归纳“修改数据”的实现步骤,同时讲解注意事项。
(3)、学生练习,教师巡视,对疑难问题进行解答。
阶段小结
小结
重点:添加数据、修改数据
答疑
教师询问学生对于知识点还有什么不理解的地方。针对学生不理解的知识点给与解释。
巩固练习
巩固“分页显示信息”与“添加与修改信息”的制作
学完知识点后,让学生再制作一次“分页显示信息”与“添加与修改信息”。以此使学生更熟练地掌握“添加数据”、“修改数据”等知识点的使用。
通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
布置作业
完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
预习4.1节【案例16】用户注册和4.2节【案例17】用户信息编辑。
复习前面学过的知识点和案例,加强巩固。
第五课时、第六课时
(上机测试)
教师发放测试题目及案例素材,学生进行上机测试。以此检查学生对相关知识点的掌握情况。测试完成后将作品通过平台提交给老师。
上机测试主要针对本章中需要重点掌握的知识点,以及在代码中容易出
错的操作步骤。通过上机测试可以考察同学对连接和选择数据库、执行SQL语句、处理结果集、mysql_real_escape_string()、like、limit、添加数据、修改数据的掌握程度。
(作品点评)
教师对学生的提交的上机测试作品进行点评,指出代码中容易出现bug的地方,并给与解答。
布置作业
完成课后“动手实践”,并扫描二维码查看答案
预习4.1节【案例16】用户注册和4.2节【案例17】用户信息编辑。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。