H3手册 专题
您的位置:H3手册 > H3手册专题 > 数据访问与分页显示
数据访问与分页显示
作者:Aliot    发布时间:2020-04-10

准备工作:

请先配置好inc目录下的数据库连接信息,然后执行以下sql语句创建必要的实例数据表test/user。


CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
use `test`;
CREATE TABLE `user` (
`iid` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) DEFAULT NULL,
`userpass` varchar(45) DEFAULT NULL,
PRIMARY KEY (`iid`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

在usr/model文件夹下创建User.php,内容如下

<?php
namespace Model;
use Lib;

class User extends Lib\DbBase{
	function __construct(){
		$this->setName('user');//设置对应的表名,重要!如需联表查询,请使用$this->query($sql)方法
	}

	function delBy($id)
	{
		if($this->where("iid in('".$id."')")->remove()){
			return "ok";
		}else{
			return "error";
		}
	}

	function getlist($start,$ps)
	{
		return $this->where("iid>0")->desc("iid")->limit($start,$ps)->page();
	}

	function getuser($username,$userpass)
	{
		return $this->where("username='".$username."' and userpass='".$userpass."'")->select();
	}

    function save($iid,$pass)
	{
		$arr = array("userpass"=>$pass);
		return $this->where("`iid`=$iid")->kv($arr)->update();
	}


	function add($username,$userpass)
	{
		$arr = array(
		"username"=>$username,
		"userpass"=>$userpass);

		$iid = $this->kv($arr)->add();
		return $iid;
	}

} 

?>
在Action方法里这样调用

	function Users()
	{
		$user = new Model\User;

		$pagesize = 10;
		$cur = isset($_GET["page"]) && is_numeric($_GET["page"]) ? $_GET["page"] : 1;

		$start = ($cur-1) * $pagesize;
		$arr = $user->getlist($start,$pagesize);

		$total = $arr["foundrows"];
		$list = $arr["data"];

		$pager = new Lib\Pager($cur,$total,$pagesize);

		$this->set("list",$list);
		$this->set("pager", $pager);
		
		return $this->view("Users");
	}
在模板里这样访问数据库数据

			  <table class='table'>
			  <tr>
				  <th>编号</th>
				  <th>用户名</th>
				  <th>用户名长度</th>
				  <th>用户名截取</th>
			  </tr>
			  {foreach($list as $item)}
			  <tr>
				<td>{$item->iid()}</td>
				<td>{$item->username()} </td>
				<td>{org.strlen($item->username())} </td>
				<td>{helper.cubstr($item->username(),0,3)} </td>
			  </tr>
			  {end}
			  </table>

			  <ul class="pagination">
				<li><a href="home/users?page=1">首页</a></li>
				<li><a href="home/users?page={$pager->prev}">上一页</a></li>
				<li><a href="home/users?page={$pager->next}">下一页</a></li>
				<li><a href="home/users?page={$pager->totalpages}">尾页</a></li>
				<li>
					<select class="form-control" style="width:80px;float:left;border-left:none;border-radius:0;" onchange="location.href='home/users?page='+this.value">
						{for($i=1;$i <=$pager->totalpages;$i++)}
						<option value="{$i}" {$i==$pager->cur?'selected':''}>第{$i}页</a>
						{end}
					</select>
				</li>
				<li><span> 共 {$pager->totalpages} 页 / {$pager->total}条记录 </span></li>
			  </ul>
注意上面的语句

{$item->username()}
实际访问的是数据库记录的字段username字段值,请注意跟一般对象方法区别一下

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册