所有的
实例
教程,我将把每一个部分知识点进行相关性完整连贯
讲解,这样大家就不会出现不连贯,不完整的现象,如果大 家觉得有什么问题,及时更贴呀~
我也会及时调整的,本教程假设你已经有相关的
基础的朋友。
现在大家能够继续坚持,现在已经是speedphp教程的第五篇了,感谢大家的一些支持,更多请移步安徽php社 区:http://bbs.hfphp.org
首先,我们来看代码,然后我们一个一个知识点来讲解:
代码
//
首页显示
function
index(){
$posturl
=
spUrl(
'
main
'
,
'
write
'
);
//
spUrl组合URL,已经说过了
//这里没有用模板,直接echo,如果有需要,我会根据大家的要求将教程补上。
echo
"
<p align=center><h2>sp留言板</h2></p>
"
;
echo
"
<p>请写下你的留言</p><form action={
$posturl
} method=POST>
"
;
echo
"
<P>您的名字:<input type=text name=name></P>
"
;
echo
"
<p>留言标题:<input type=text name=title></p>
"
;
echo
"
<p>留言内容:<textarea name=contents></textarea></p>
"
;
echo
"
<p><input type=submit value=提交></p></form>
"
;
$guestbook
=
spClass(
"
guestbook
"
);
//
初始化数据表对象,如果要使用后面的findAll和find,create等都是必须的
// if ($result = $guestbook->findAll()){
$result
=
$guestbook
->
spPager(
$this
->
spArgs(
'
page
'
,
1
)
,
5
)
->
findAll();
//
第一个知识点:分页
$page
=
$guestbook
->
spPager()
->
getPager();
//
第一个知识点:分页2
foreach
(
$result
as
$value
){
$contentsurl
=
spUrl(
'
main
'
,
'
show
'
,
array
(
'
id
'
=>
$value
[
'
id
'
]));
//
又见spUrl,显示留言和回复,会产生index.php?c=main&a=show&id=xxx的
$contentdel
=
spUrl(
'
main
'
,
'
del
'
,
array
(
'
id
'
=>
$value
[
'
id
'
]));
//
删除url构造
$contentbj
=
spUrl(
'
main
'
,
'
bianji
'
,
array
(
'
id
'
=>
$value
[
'
id
'
]));
//
编辑url构造
echo
"
<p><input type='button' value='删除' onclick=javascript:location.href='{
$contentdel
}'>
"
;
echo
"
<input type='button' value=' 编辑' onclick=javascript:location.href='
$contentbj
'>
"
;
echo
"
里是第{
$value
['id']}条留言:
"
;
//
这里显示标题,名字,都是echo,大家应该比较熟悉
echo
"
<a href={
$contentsurl
} target=blank>{
$value
['title']}</a> {
$value
['name']}</p>
"
;
}
//
开始分页部分了
.............
//
下面讲解
}
大家可能看花眼了吧,也可能比较迷糊,原创http://bbs.hfphp.org
上面是index动作,即在首页显示所有的留言,就是一些echo,没有什么可说的,
其实查看很简单,通过下面的 $contenturl产生的地址,我们跳转到查看页面,就OK了,相信有php基础的都能看懂。
echo "<a href={$contentsurl} target=blank>{$value['title']}</a> {$value['name']}</p>";
查看留言的内容也很简单,直接贴代码了,
代码
//
查看留言内容
function
show(){
$posturl
=
spUrl(
'
main
'
,
'
reply
'
);
//
这里是构造回复的地址index.php?c=main&a=reply
$id
=
$this
->
spArgs(
"
id
"
);
//
获取id的get产生,spArgs可以获取到get/post等数据。
$guestbook
=
spClass(
"
guestbook
"
);
$condition
=
array
(
'
id
'
=>
$id
);
//
制造查找条件,这个是查找留言
$conarr
=
array
(
'
firstid
'
=>
$id
);
//
//制造查找条件,这个是查找留言对应的回复
$result
=
$guestbook
->
find(
$condition
);
//
查找留言 第二个知识点1
$resarr
=
$guestbook
->
findAll(
$conarr
);
//
查找所有的回复 第二个知识点2
//print_r($resarr);die;
//留言查看
echo
"
<p>1留言标题:{
$result
['title']}</p>
"
;
echo
"
<p>留言者:{
$result
['name']}</p>
"
;
echo
"
<p>留言内容:{
$result
['contents']}</p><br />
"
;
//
回复查看
foreach
(
$resarr
as
$value
){
echo
"
<p>回复标题:{
$value
['title']}</p>
"
;
echo
"
<p>回复者:{
$value
['name']}</p>
"
;
echo
"
<p>回复内容:{
$value
['contents']}</p>
"
;
}
//
回复表单
echo
"
<form action=
$posturl
method='post'>
"
;
echo
"
<p>回复标题:<input type='text' name='title'><input type='hidden' name=firstid value={
$result
['id']}></p>
"
;
echo
"
<p>回复者:<input name='name'></p>
"
;
echo
"
<p>回复内容:<textarea name='contents'></textarea>
"
;
echo
"
<input type='submit' value='提交'></form>
"
;
}
第二个知识点:find和findAll,及findSql
先讲find和findAll主要是下面的分页需要原创http://bbs.hfphp.org
find —— 从数据表中查找一条记录
用法:find($conditions = null, $sort = null, $fields = null)
$conditions, 数组形式,查找条件,数组的键是数据表中的字段名,键对应的值是该字段的条件。
比如要在留言本中查找到名为“小李”留言者的第一条留言,那 么$conditions条件则应该是:
$conditions = array( // PHP数组
'name' => '小李', // 键name是数据表中的字段,小李是我们要查找的数据
);
*$sort,字 符串,指定结果排序方向
*$fields,字符串,特殊指定返回的字段
在find,findAll,findSQL等多个查找
函数以及update,delete等函数中出现的参 数$conditions,除了可以是数组格式外,还可以是字符串的形式,而字符串形式的$conditions就如同SQL语句中的WHERE后面的条 件字符串一样的使用。
如:原创http://bbs.hfphp.org
$conditions = array('name'=>'小李');
就等同于
$conditions = " 'name' = '小李' ";
代码
首先需要准备查找条件
$conditions
=
array
(
'
name
'
=>
'
小李
'
);
$gb
=
spClass(
'
gb
'
);
//
初始化留言本模型类
$result
=
$gb
->
find(
$conditions
);
//
查找
dump(
$result
);
//
查看结果,
echo
$result
[
'
contents
'
];
//
直接输出结果中的留言内容,对应字段contents
findAll —— 从数据表中查找多条记录
findAll与find的区别在于findAll是返回全部符合条件的记录,而find仅是返回findAll结果的第一条记录。
用法:findAll($conditions = null, $sort = null, $fields = null, $limit = null)
参数:原创http://bbs.hfphp.org
$conditions,数组形式,查找条件,同find的$conditions
*$sort,字符串,指定结果排序方向
*$fields,字符串,特殊指定返回的字段
*$limit,字符串,返回结果数量限制示例:
代码
//
还是需要查找小李的留言,不过这次是查找他的全部的留言。
// 首先需要准备查找条件
$conditions
=
array
(
'
name
'
=>
'
小李
'
);
//
条件是同样的
$gb
=
spClass(
'
gb
'
);
//
初始化留言本模型类
$result
=
$gb
->
findAll(
$conditions
);
//
使用了findAll
dump(
$result
);
//
查看结果,
findSql —— 使用SQL语句进行查找操作,等于进行find,findAll等操作
原创http://bbs.hfphp.org
用法:findSql($sql)
参数:$sql,字符串,需要进行查找的SQL语句
代码
//
这里我们将对留言本分析一下,归纳一下留言者名单以及各个留言者的留言总数。
// 首先准备SQL语句
$sql
=
"
SELECT name, count(name) as gbsum FROM spgb_gb WHERE 1 GROUP BY name
"
;
$gb
=
spClass(
'
gb
'
);
//
初始化留言本模型类
$result
=
$gb
->
findSql(
$sql
);
//
执行查找
dump(
$result
);
//
输出结果
他主要用于执行sql的查询语句,因为在实际应用过程中,可能find和findAll并不能满足需要的
其实,还有很多类似的,我们会在以后补充中讲解,或者大家可以下载手册直接看。。。。
第一个知识点:分页
SpeedPHP中的分页函数非常容易使用,几乎就是在 普通数据库操作findAll的基础上加入一行代码即可获取 到分页
代码
$guestbook
=
spClass(
"
guestbook
"
);
//
初始化数据表对象,如果要使用后面的findAll和find,create等都是必须的
$result
=
$guestbook
->
spPager(
$this
->
spArgs(
'
page
'
,
1
)
,
5
)
->
findAll();
//
就下面的两行比较重要。
$page
=
$guestbook
->
spPager()
->
getPager();
spPager是分页程序,第一个参数是页码,也就是第几页,这里我们 用$this->spArgs('page', 1)来获取传过来的page,后面的1是如果在page没有值的时候,默认返回1。第二个参数是分页大小,也就是每页显示几条记录,这里设置是每页显示5 条记录。
$this->pager = $guestbook->spPager()->getPager();
在使用了spPager来进行findAll后,就可以使用getPager()方法来获取分页数据。分页数据的格式是:(他是一个数组)
完整请移步安徽php社区:http://bbs.hfphp.org/thread-59-1-1.html
原创http://bbs.hfphp.org,转载请说明出处,写写。。。。