目录
一、案例展示
1.首页
2.发表愿望单
3.修改愿望单
4.删除愿望单
二、需求分析
三、案例实现
1.准备工作
2.数据库设计
3.许愿墙展示
4.分页查询
5.发表愿望
6.修改愿望
7.删除愿望
教程完毕
在本案例中,对于许愿墙的具体需求如下。
① 准备项目运行的环境创建虚拟主机
② 合理的管理项目文件目录结构划分
③ 连接数据库 编写文件common\init.php完成数据库连接,为后续开发做准备
④ 准备公共函数 封装常用的代码,以提高代码的可复用性、可维护性等,如外部变量的接收和过滤
⑤ 引入公共文件 init.php、function.php
类型
文件名称
作用
目录
common
保存公共的PHP文件
css
保存项目的CSS文件
js
保存项目的JavaScript文件
view
保存项目的HTML文件
common/init.php
保存项目的初始化代码(设置时区、连接数据库)
文件
common/function.php
保存项目的公共函数
view/index.html
展示愿望的HTML模板
view/common/add.html
添加愿望的HTML模板
view/common/edit.html
修改愿望的HTML模板
view/common/password.html
修改或删除愿望时,验证密码的HTML模板
index.php
提供展示愿望、验证密码、删除愿望功能
save.php
提供添加、修改愿望功能
字段
数据类型
说明
id
INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
愿望id
name
VARCHAR(12) DEFAULT '' NOT NULL
作者名字
content
VARCHAR(80) DEFAULT '' NOT NULL
许愿内容
time
INT UNSIGNED DEFAULT 0 NOT NULL
发表时间
color
VARCHAR(10) DEFAULT '' NOT NULL
贴纸颜色
password
VARCHAR(6) DEFAULT '' NOT NULL
保护密码
①在index.php中编写SQL语句查询出所有记录
②格式化日期
③修改HTML展示模板
④为避免不同服务器环境因配置的时区不同,造成显示的时间有误,设置时区
a.查询出数据库的记录
Array( [0]=>Array([id]=>1 [name]=>张三 [content]=>天天开心、心想事成、大吉大利、一帆风顺。 [time]=>1490240257 [color]=>red) [1]=>Array([id]=>2 [name]=>PHP爱好者 [content]=>祝愿PHP越来越好! [time]=>1490240257 [color]=>yellow [2]=>Array([id]=>3 [name]=>匿名 [content]=> 争取毕业月薪过万 [time]=>1490251234 [color]=>blue [3]=>Array([id]=>4 [name]=>小名 [content]=> 考上清华大学 [time]=>1490240257 [color]=>green )b.编写样式
a.分页实现的原理是利用LIMIT限制SELECT语句查询出的数据
SELECT `content` FROM `wish` LIMIT 0, 10; # 查询第1页的10条数据 SELECT `content` FROM `wish` LIMIT 10, 10; # 查询第2页的10条数据 SELECT `content` FROM `wish` LIMIT 20, 10; # 查询第3页的10条数据 SELECT `content` FROM `wish` LIMIT 30, 10; # 查询第4页的10条数据
①在common\function.php文件中编写page_sql()函数,获取LIMIT的参数
②在index.php中,根据用户传递的页码,利用LIMIT查询出对应的记录
③生成“首页”“上一页”“下一页”“尾页”链接导航显示到HTML页面中
①准备发表愿望的表单,在index.html中引入
②利用自定义的input()函数接收并过滤用户提交的数据
③按照要求对用户提交的数据进行判断。例如,贴纸的颜色只能是蓝、黄、绿、红中的一种。
④通过验证后,将用户提交的数据保存到数据库中
a.发表愿望
a.删除愿望功能用于作者删除自己的愿望,为防止误删,删除时需验证保护密码。
添加一个删除链接在index.php中验证保护密码是否正确不正确,不能删除正确,直接删除数据库中对应的愿望信息