tp 查操作

一、控制器

// 列表
    public function lst()
    {
        $model = D(‘Goods‘);
        // 获取带翻页的数据
        $data = $model->search();
        $this->assign(array(
            ‘data‘ => $data[‘data‘],
            ‘page‘ => $data[‘page‘],
        ));

        $this->display();
    }

二,模型

public function search()
    {
        /************ 搜索 ****************/
        $where = array();
        // 商品名称的搜索
        $goodsName = I(‘get.goods_name‘);
        if($goodsName)
            $where[‘goods_name‘] = array(‘like‘, "%$goodsName%");
        // 价格的搜索
        $startPrice = I(‘get.start_price‘);
        $endPrice = I(‘get.end_price‘);
        if($startPrice && $endPrice)
            $where[‘price‘] = array(‘between‘, array($startPrice, $endPrice));
        elseif ($startPrice)
            $where[‘price‘] = array(‘egt‘, $startPrice);
        elseif ($endPrice)
            $where[‘price‘] = array(‘elt‘, $endPrice);
        // 上架的搜索
        $isOnSale = I(‘get.is_on_sale‘, -1);
        if($isOnSale != -1)
            $where[‘is_on_sale‘] = array(‘eq‘, $isOnSale);
        // 是否删除的搜索
        $isDelete = I(‘get.is_delete‘, -1);
        if($isDelete != -1)
            $where[‘is_delete‘] = array(‘eq‘, $isDelete);
        /***************** 排序 ******************/
        $orderby = ‘id‘;  // 默认排序字段
        $orderway = ‘asc‘; // 默认排序方式
        $odby = I(‘get.odby‘);
        if($odby && in_array($odby, array(‘id_asc‘,‘id_desc‘,‘price_asc‘,‘price_desc‘)))
        {
            if($odby == ‘id_desc‘)
                $orderway = ‘desc‘;
            elseif ($odby == ‘price_asc‘)
                $orderby = ‘price‘;
            elseif ($odby == ‘price_desc‘)
            {
                $orderby = ‘price‘;
                $orderway = ‘desc‘;
            }
        }
        /************ 翻页 *************/
        // 总的记录数
        $count = $this->where($where)->count();
        // 生成翻页对象
        $page = new \Think\Page($count, 2);
        // 获取翻页字符串
        $pageString = $page->show();
        // 取出当前页的数据
        $data = $this->where($where)->limit($page->firstRow.‘,‘.$page->listRows)->order("$orderby $orderway")->select();

        //echo $this->getLastSql();

        return array(
            ‘page‘ => $pageString,
            ‘data‘ => $data,
        );
    }
时间: 2024-11-25 06:40:14

tp 查操作的相关文章

用自定义ContentProvider实现对数据库的增、删、改、查操作

本次对于数据库的操作是在不同的APP中进行的.下面的前四篇是在一个APP中,后面的是在另一个APP中 ------------------------------------------------------------------------------------------------- 首先自定义一个SqliteOpenHelper.完成对数据库的创建和数据库内table的创建 package com.example.content_provider_03; import androi

(转)SQLite数据库增删改查操作

原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).d

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

Elasticsearch增、删、改、查操作深入详解

引言: 对于刚接触ES的童鞋,经常搞不明白ES的各个概念的含义.尤其对"索引"二字更是与关系型数据库混淆的不行.本文通过对比关系型数据库,将ES中常见的增.删.改.查操作进行图文呈现.能加深你对ES的理解.同时,也列举了kibana下的图形化展示. ES Restful API GET.POST.PUT.DELETE.HEAD含义: 1)GET:获取请求对象的当前状态. 2)POST:改变对象的当前状态. 3)PUT:创建一个对象. 4)DELETE:销毁对象. 5)HEAD:请求获取

Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面进行描述.参考前文: Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交 Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中 Java+MyE

作业员工信息表实现增删改查操作

有以下员工信息表 当然此表你在文件存储时可以这样表示 1 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select  * from staff_table where dept = "IT" select  * from staff_table where enroll

【greenDAO3】 项目搭建与增删改查操作

最近需要开始一个新的项目了,考虑到既然是新项目了,那么一些常用的框架肯定也要用当下最火的!这次的新项目中涉及到了本地数据存储,很早前有个项目的本地数据库框架用的是ActiveAndroid,github找了下这个框架,发现已经两年多已经没有更新了.然后就想到了一直没有时间去涉及到的greenDAO,github一搜索,哦呦?star有5000+,并且依然保持着很高的更新频率,并且性能远远的高于activeAndroid(见下图),果断选用. 刚开始想偷偷懒,大致浏览了下greenDAO官网后就开

[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例

本文我们来学习一下在Entity Framework中使用Context删除多对多关系的实体是如何来实现的.我们将以一个具体的控制台小实例来了解和学习整个实现Entity Framework 多对多关系的实体删除的操作过程. 你将学习到 怎样创建一个引用Entity Framework的项目: 怎样配置Entity Framework的数据库连接: 怎样去掉Entity Framework Code First 生成的表名的复数: 怎样通过EntityTypeConfiguartion配置实体的

基于Java的XML文件模拟数据库进行增删改查操作

我们知道XML文件既可以用来进行数据的传输,也可以配合DTD约束文件用来作为配置文件,当然其本质就是一个加了标签以及众多空格保持格式的字符串,那么就可以用Java进行操作. 本例是使用MyEclipse带入DOM4j解析时要用的jar包的基础上做的:当然DOM4j相对于DOM SAX 等解析方式的方便程度是不言而喻的. 下面是本次用例XML文件 <?xml version="1.0" encoding="UTF-8"?> <persons>