洪哥的ThinkPHP教程之编写列表页


关键词

ThinkPHP 列表页

摘要

本文介绍使用ThinkPHP来编写列表页,主要从数据库表、Action类和模板页面三个方面来进行说明。

我们下面来介绍产品列表页面的的制作。

一、数据库表

首先看一下数据库表:

-- ----------------------------
-- 这是简单的商品表的结构
-- ----------------------------
DROP TABLE IF EXISTS `zaho_product`;
CREATE TABLE `zaho_product` (
  `p_id` int(11) NOT NULL AUTO_INCREMENT,
  `p_name` varchar(128) NOT NULL COMMENT '名称',
  `category_id` int(11) NOT NULL DEFAULT '0' COMMENT '分类ID',
  `p_description` varchar(1024) DEFAULT '' COMMENT '描述',
  `p_price` varchar(50) NOT NULL DEFAULT '' COMMENT '价格',
  `p_thumb` varchar(128) DEFAULT '' COMMENT '缩略图',
  `p_content` text,
  `p_is_online` tinyint(4) NOT NULL DEFAULT '1' COMMENT '上架状态,取值于数据字典',
  `p_is_index` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否首页显示',
  `p_is_zhiding` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否置顶',
  `p_order` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
  PRIMARY KEY (`p_id`),
  UNIQUE KEY `p_name` (`p_name`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='商品表';

大家需要根据每个字段的COMMNET来了解一下每个字段的含义,然后看类型知道怎么调用,最后还要关注一下默认值是否非为空,这在写入数据(即insert和update)时需要把握的。

注意:
1、这里的表名为“zaho_product”,但在ThinkPHP中我们统一定义了表前缀为“zaho_”,所以调用的时候直接写product就行了。
2、我们暂时不讲表的关联,如这里的category_id就是关联的分类表里面的cate_id字段,我们在列表页面中暂时不管它。我们只要将category_id作为一个输入参数来显示指定分类的产品列表。

二、Action

我们在IndexAction.class.php中,新建一个pppList函数来处理产品列表。

<?php
    public function pppList(){
    
        //构造查询条件
        
        $category_id = I('category_id');
        $where = array();
        if(is_numeric($category_id)) $where['category_id'] = $category_id;

        //查询并进行分页

        import('ORG.Util.Page'); // 导入分页类
        
        $m = M("product");
        $count = $m->where($where)->count();
        $Page = new Page($count,4); //这里可以修改分页的大小
        $pagelist = $Page->show();
        $list = $m->where($where)->order('p_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
        
        //赋值并显示模板
        
        $this->assign('list',$list); //得到列表数据
        $this->assign('page',$pagelist); //分页内容
        $this->display();
    }
?>

说明:
1、当列表页面被访问时,首先系统会找到pppList()这个方法,并运行它。
2、整个过程大概可以理解为,第一步获取参数并处理成条件数组(即$where);第二步引入分页类并代入条件进行查询,得到一个$list和$pagelist变量;第三步把$list和$pagelist变量传给模板文件,并显示模板文件。

三、模板文件

pppList.php的核心内容

<volist name="list" id="vo">
    产品名:{$vo['p_name']}
    价格:{$vo['p_price']}
    <img src="{$vo['p_thumb']}" style="width:100px;" />
    <br>
        <a href="{:U('pppDetail', array('p_id'=>$vo['p_id']))}">查看详情</a>
    <hr/>
</volist>

<div class="">
    {$page}
</div>

说明:
1、使用volist循环,将我们传过来的$list数组(它是一个二维数组)显示出来
2、将分页的内容显示出来(即$page)。
3、列表页一般都有链接指向详情页,请注意”查看详情”,这个链接的href属性的写法。pppDetail为详情页的方法名(也是模板文件名)。

关于使用ThinkPHP来编写列表页,本文就介绍这么多,希望对大家有所帮助。

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:洪哥的ThinkPHP教程之编写列表页:http://www.splaybow.com/post/thinkphp-hongge-list-page.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« ThinkPHP中调用PHPExcel PHP判断手机号码是否正确 »