桂林理工大学南宁分校
《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小时内删除。
发表评论