本章让我们使用sp框架来制作一个简单的留言本程序,在实例中学习程序开发是非常有效的。同时,我们也可以体会一下实际网络项目的开发流程。
留言本例子下载
首先我们来看看,留言本的需求,也就是我们的程序将要实现什么功能:
- 访问者可以查看留言首页(也就是留言列表)。
- 访问者可以查看单一条留言的详细内容。
- 访问者可以进行留言。
请注意,我们的“需求”都是以访问者为中心的。但同时我们还可以以访问者和管理员为中心,只是本章介绍的留言本还暂时没有加入管理功能。
为了简单起见,我们并没有加入管理功能的需求。我们再来想想,在上面三个过程中所涉及的数据有哪些?对,仅是留言信息。那么我们大致考虑,留言信息会包括:留言标题,留言内容,留言者名字。另外,我们留言的信息还需要包括一个唯一的标志,以区分每一条留言。好了,那么我们就可以得出,留言本程序的数据表仅有一个“留言表”(起个英文名叫guestbook),它的大致结构是:
- 留言标题,字符串(也就是中英文)形式,大概不会多于50字。用title做数据表的字段名称。
- 留言内容,字符串,也不会多于200字吧,用contents做字段名。
- 留言者名字,字符串,大概在20个字以内,用name做字段名。
- 唯一标志,一般用数字形式的ID。用id做字段名。
按以上的说明,我们可以得出以下的数据表结构。
1 |
CREATE TABLE `guestbook` ( |
2 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
4 |
`contents` varchar(200) ,
|
7 |
) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
对于数据库知识,我们提倡的是按需学习,也就是用到哪些就学哪些,毕竟“书上讲得深奥,实际没有用到”,那就是费力不讨好。并且,在实际工作中,PHP程序员所需要的,也仅仅是一小部分的数据库知识,万一遇到更复杂的数据库需求我们也有非常多的解决途径,比如同事之间讨论,SpeedPHP论坛求助,找GOOGLE大神等等。所以除非是很有必要(比如工作是程序员兼数据库管理员DBA的人员),不然数据库知识方面,我们也是浅尝辄止即可。
初学PHP,我们建议可以了解一下以下的数据库知识就足够,不需要给自己太多的学习压力。
- 在类似PhpMyAdmin的数据库管理工具中,如何建表。
- CREATE,UPDATE,DELETE,SELECT四个语言的简单用法。
- 懂得思考和想方法解决遇到的问题。
使用数据库管理工具而不用纯粹SQL语句和命令行并没有什么荒废知识的问题,毕竟那会更简单快捷并且避免许多问题,这是提高开发效率的必然选择。
在PhpMyAdmin中建好了guestbook表
然后后,我们可以在index.php中对程序进行数据库的配置:
03 |
define( "SP_PATH" ,dirname( __FILE__ ). "/SpeedPHP" );
|
05 |
define( "APP_PATH" ,dirname( __FILE__ ));
|
09 |
'host' => 'localhost' ,
|
11 |
'password' => '123456' ,
|
15 |
require (SP_PATH. "/SpeedPHP.php" );
|
请注意index.php的目录位置,这是我们应用程序的入口文件,同时也是配置文件。
上面提到访问者进行的三个动作:看留言本首页,看留言内容,留言。好的,那么我们的main.php,就可以是下面的样子了:
02 |
class main extends spController
|
将main.php放到controller目录里面后,我们建立一个guestbook.php放到model目录里面,那是链接数据库所要做的。guestbook.php的代码很简单:
2 |
class guestbook extends spModel
|
5 |
var $table = "guestbook" ;
|
请注意,全部PHP文件都需要是UTF8编码,用PHP编辑器另存为就可以做到。请看《PHP编辑器的选择》。
上面准备的程序,就可以说系统架构。
准备好了这些程序后,我们可以写代码了,main.php的代码如下:
02 |
class main extends spController
|
05 |
$posturl = spUrl( "main" , "write" );
|
06 |
echo "<p align=center><h2>我的留言本</h2></p>" ;
|
08 |
echo "<p>请写下您的留言:</p><form action={$posturl} method=POST><p>您的名字:<input type=text name=name></p><p>留言标题:<input type=text name=title></p><p>留言内容:<textarea name=contents></textarea></p><p><input type=submit value=提交></p></form>" ;
|
09 |
$guestbook = spClass( "guestbook" );
|
10 |
if ( $result = $guestbook ->findAll() ){
|
11 |
foreach ( $result as $value ){
|
12 |
$contentsurl = spUrl( "main" , "show" , array ( 'id' => $value [ 'id' ]));
|
13 |
echo "<p>这里是第{$value['id']}条留言:<a href={$contentsurl} target=_blank>{$value['title']}</a> {$value['name']}</p>" ;
|
18 |
$id = $this ->spArgs( "id" );
|
19 |
$guestbook = spClass( "guestbook" );
|
20 |
$condition = array ( 'id' => $id );
|
21 |
$result = $guestbook ->find( $condition );
|
23 |
echo "<p>留言标题:{$result['title']}</p>" ;
|
24 |
echo "<p>留言者:{$result['name']}</p>" ;
|
25 |
echo "<p>留言内容:{$result['contents']}</p>" ;
|
28 |
$guestbook = spClass( "guestbook" );
|
29 |
$guestbook ->create( $this ->spArgs());
|
30 |
echo "留言成功,<a href=/index.php>返回</a>" ;
|
好了,我们可以先将上面代码复制到我们的main.php里面,运行一下试试吧。
上面的main.php我们在注释内也能基本了解程序的写法,在接下来的第五章里面,我们着重以留言本程序来介绍sp框架的数据库操作。同时,都是用echo来输出页面,看起来有些乱,所以第六章我们将改写这个留言本程序,把它变成用Smarty来输出的程序。
分享到:
相关推荐
快速入门快速入门快速入门快速入门快速入门快速入门快速入门快速入门快速入门快速入门快速入门快速入门
PPT制作教程及实用技巧 快速入门 PPT制作教程及实用技巧 快速入门 PPT制作教程及实用技巧 快速入门
ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS...ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门
CSS快速入门.doc
C# MVC入门实例 MVC留言本 C# MVC入门实例 MVC留言本
学习如何快速维修笔记本电脑,入门教材。适合入门者泛读。
cics快速入门.pdfcics快速入门.pdfcics快速入门.pdfcics快速入门.pdf
ThinkPHP5快速入门ThinkPHP5快速入门ThinkPHP5快速入门ThinkPHP5快速入门ThinkPHP5快速入门ThinkPHP5快速入门ThinkPHP5快速入门ThinkPHP5快速入门
最新ThinkPHP 5快速入门手册,学习ThinkPHP好帮手。
10分钟快速入门 PyTorch,是一份简单、易学的中文教程,含开发环境和示例代码。10分钟快速入门 PyTorch (0) – 基础 10分钟快速入门 PyTorch (1) – 线性回归 10分钟快速入门 PyTorch (2) – 逻辑回归 10分钟快速...
OpenSceneGraph快速入门指导.pdf
Quartz框架快速入门Quartz框架快速入门
包含4个文档:机器人学习简介、机器学习快速入门、应用无监督学习、应用监督式学习
J2EE快速入门,帮助菜鸟快速掌握WEB开发
OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门
osg 快速入门指导
汇编语言快速入门汇编语言快速入门汇编语言快速入门汇编语言快速入门汇编语言快速入门汇编语言快速入门汇编语言快速入门汇编语言快速入门