原版,请移步安徽php社区http://bbs.hfphp.org/viewthread.php?tid=82
编辑:
在index的动作中,我们使用了spUrl构造了一个编辑的跳转地址
$contentbj = spUrl('main','bianji',array('id'=>$value['id']));
然后在,下面echo出了编辑的按钮,他有一个onclick事件,当点击时候会跳转到编辑表单
通过上面的构造函数,我们可以知道,编辑会跳转到 index.php?c=main&a=bianji&id=xxxx
<input type='button' value=' 编辑' onclick=javascript:location.href='$contentbj'>
编辑的动作代码如下:

function bianji(){
$id = $this->spArgs("id"); //获取id的参数,类似于$id = $_GET['id']
$condition = array('id' =>$id); //组合id数组,用于下面的find查询
$guestbook = spClass("guestbook"); //.....
$update = spUrl("main","update"); //构造编辑时的更新跳转地址
$result = $guestbook->find($condition); //查询当前参数id的记录
//dump($result); //可以调试看看
//只是一些echo表单
echo "<form action={$update} method=post>";
echo "<input type='hidden' name=id value='{$result[id]}'>";
echo "标题:<input type='text' name=title value={$result['title']}><br />";
echo "留言者:<input type='text' name=name value={$result['name']}><br />";
echo "内容<textarea col='40' rows='8' name=contents>{$result['contents']}</textarea>";
echo "<input type='submit' value='更新'></form>";
}
更新:
我们有了编辑,只是显示编辑的表单,那么,如果我们修改更新了数据,就会跳转到其他的地址——更新
就是:原创安徽php社区:http://bbs.hfphp.org
$update = spUrl("main","update"); //构造编辑时的更新跳转地址
那么,我们来看看更新的代码:

$guestbook = spClass("guestbook"); //.....
$postres = $this->spArgs(); //获取所有传递过来的数据
//print_r($_POST);
//dump($postres); //调试看看
//update所需要更新条件
$condition = array('id'=>$postres['id']);
//update所需要更新值数组
$updaterows = array('title'=>$postres['title'],'name'=>$postres['name'],'contents'=>$postres['contents']);
//更新
$res = $guestbook->update($condition,$updaterows); //一个知识点,speedphp的更新update
if($res){ //成功三秒跳回
echo "更新成功,三秒后跳回";
echo "<meta http-equiv='refresh' content='1;url=index.php'>";
}else{
echo "更新失败";
echo "<meta http-equiv='refresh' content='1;url=index.php'>";
}
}
update —— 修改数据,该函数将根据参数中设置的条件而更新表中数据。
用法:update($conditions, $row)
参数:
$conditions,数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。
$row,数组形式,修改的数据,此参数的格式用法与create的$row是相同的。在符合条件的记录中,将对$row设置的字段的数据进行修改。

// 构造查找条件
$conditions = array('gid'=>12); // 思考为什么不能用 'name' => '小李' 来作为条件呢?
// 设置需要更新的字段,注意没必要更新的字段请不要设置。这里我们仅仅修改contents(内容)对应的数据。
$row = array('contents'=>'我的第一条记录');
$gb = spClass('gb');
$gb->update($conditions, $row);
注意:返回TRUE则是语句执行成功,无论有无符合条件的记录,只要操作正常执行则返回TRUE。
返回FALSE是语句执行失败
删除:
删除和编辑一样,我们也有一个删除的按钮跳转事件,跳向删除的动作,
构造URL,如下:原创安徽php社区:http://bbs.hfphp.org
$contentdel = spUrl('main','del',array('id'=>$value['id']));
删除的代码如下:

function del(){
$id = $this->spArgs("id");
$guestbook = spClass("guestbook");
$condition = array('id'=>$id);
$a = $guestbook->delete($condition); //一个知识点,delete
if($a){
echo "删除成功";
}else{
echo "删除失败";
}
}
删除,其实很简单,对于Speedphp的删除只要一个条件即可
delete —— 按条件删除记录
用法:delete($conditions)
参数:
$conditions,数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。
delete的操作将删除符合$conditions条件的记录。
例如:
// 构造查找条件
$conditions = array('gid'=>13); // 构造条件 ,数组
$gb = spClass('gb');
$gb->delete($conditions);
这样就可以了,此外,除了delete外,speedphp还 定义了一个deleteByPk,实现删除更简单,但是有局限性
deleteByPk —— 按给定的数据表的主键删除记录原创安徽php社区:http://bbs.hfphp.org
用法:deleteByPk($pk)
参数:
$pk,字符串或数字,数据表主键的值。
该函数简化了delete的操作,根据给定的主键删除对应的记录。
// 使用deleteByPk
$gb->deleteByPk(13);
// 等同于使用delete
$conditions = array('gid'=>13); // 构造条件
$gb->delete($conditions);
回复:原创安徽php社区:http://bbs.hfphp.org
在show动作中,我们已经写出了回复表单,代码就不贴了,如果大家自己写了测试代码那么应该很清楚,如果没有写,只是看的话,
那么你就向前看吧.
在代码中我们构造了一个回复的地址:$posturl = spUrl('main','reply');
他会提交到,main控制器的reply动作中来,reply的动作如下:

$guestbook = spClass("guestbook");
$a1 = $this->spArgs();
//dump($a1);
//我们已经在前面说过了,如果input等标签的的name值和数据库中的字段名相同,那么我们可以直接在create参数中填上$this->spArgs()
//不然的话,我们还要$id = $this->spArgs("id"); 等类似的一个一个获取,然后重组成数组给create当参数,很麻烦,也违背了框架,
//快速开发的理念。
$guestbook->create($this->spArgs());
//链接返回,大家也可以让他主动跳回。
echo "留言成功,<a href='index.php'>返回</a></p>";
}
回复的本质还是忘数据库里面添加数据,使用create,
原创安徽php社区:http://bbs.hfphp.org
来源:http://bbs.hfphp.org/viewthread.php?tid=82,转载请注明出处谢谢。。