ThinkPHP之中getlist方法实现数据搜索功能
自己在ThinkPHP之中的model之中书写getlist方法,其实所谓的搜索功能无非就是数据库查询之中用到的like %string%,或者其他的 字段名=特定值,这些sql语句拼接在and语句之中;
HTML之中:
<form action="" method="get"> <table class="account_table" width="100%" cellpadding="0" cellspacing="0"> <tr> <td style="text-align:right">订单号:</td> <td> <input id="Orderid" name="order_sn" class="inp_wid3" type="text" value="{$_GET['order_sn']}"/> </td> <td style="text-align:right"> 下单日期: </td> <td colspan="5"> <input type="text" class="inp_wid2" id="BeginTime" name="begintime" value="{$_GET['begintime']}" /> 至 <input type="text" class="inp_wid2" id="EndTime" name="endtime" value="{$_GET['endtime']}" /> 交易完成日期 <input type="text" class="inp_wid2" id="txtFinishedBeginTime" name="finishbegintime" value="{$_GET['finishbegintime']}" /> 至 <input type="text" class="inp_wid2" id="txtFinishedEndTime" name="finishendtime" value="{$_GET['finishendtime']}" /> 订单金额: <input type="text" class="inp_wid2" id="txtMoneyMin" name="count_price_min" value="{$_GET['count_price_min']}"/> 至 <input type="text" class="inp_wid2" id="txtMoneyMax" name="count_price_max" value="{$_GET['count_price_max']}" /> </td> </tr> <tr> <td style="text-align:right; width:80px">采购商名称:</td> <td style="width:140px"> <input id="SupermarketName" name="user_nick_name" class="inp_wid3" type="text" value="{$_GET['user_nick_name']}" /> </td> <td style="text-align:right; width:80px">采购商账号:</td> <td style="width:140px"> <input id="SupermarketZh" name="user_name" class="inp_wid3" type="text" value="{$_GET['user_name']}" /> </td> </tr> <tr> <td colspan="2"> <input class="search_btn1" type="submit" value="搜索" id="Search" /> </td> </tr> </table> </form>
看到没GET方法提交表单,这个是查询条件填入选项;
控制器之中:
$order_msg=$order->getList(); $this->assign('info',$order_msg);//这个获取订单的详细信息
Model之中:
public function getList($pagesize=25){ $tableName = $this->getTableName(); $where = $tableName.'.service_id = '.$_SESSION['service_site']['service_id']; if(!empty($_GET['order_sn'])){//查询订单号 $where.= " and $tableName.`order_sn` like '%".$_GET['order_sn']."%'"; } if(!empty($_GET['count_price_min'])){//查询订单最小金额 $where.= " and $tableName.count_price >=".$_GET['count_price_min'].""; } if(!empty($_GET['begintime'])){//下单开始日期搜索 $_GET['begintime']=strtotime($_GET['begintime']);//将日期转为时间戳 $where.= " and $tableName.add_time >=".$_GET['begintime'].""; $_GET['begintime']=date('Y-m-d',$_GET['begintime']);//将日期转为时间戳 } if(!empty($_GET['endtime'])){//下单结束日期搜索 $_GET['endtime']=strtotime($_GET['endtime']);//将日期转为时间戳 $where.= " and $tableName.add_time <=".$_GET['endtime'].""; $_GET['endtime']=date('Y-m-d',$_GET['endtime']);//将时间戳转换成日期,方便刷新页面后前台显示 } if(!empty($_GET['finishbegintime'])){//交易完成开始日期搜索 $_GET['finishbegintime']=strtotime($_GET['finishbegintime']);//将日期转为时间戳 $where.= " and $tableName.ok_time >=".$_GET['finishbegintime'].""; $_GET['finishbegintime']=date('Y-m-d',$_GET['finishbegintime']);//将日期转为时间戳 } if(!empty($_GET['finishendtime'])){//交易完成结束日期搜索 $_GET['finishendtime']=strtotime($_GET['finishendtime']);//将日期转为时间戳 $where.= " and $tableName.ok_time <=".$_GET['finishendtime'].""; $_GET['finishendtime']=date('Y-m-d',$_GET['finishendtime']);//将时间戳转换成日期,方便刷新页面后前台显示 } if(!empty($_GET['send'])){//查询已发货预警订单,发货时间距离此刻超过五天 $where.= " and $tableName.send_time < '".(time()-60*60*24*5)."'"; } if(!empty($_GET['doingorder'])){//查询处理中的订单 $where.= " and $tableName.status in (0,1)"; } if(!empty($_GET['warningorder'])){//查询预警的订单:已经付款且时间超过24小时未发货 $where.= " and $tableName.pay_time < '".(time()-60*60*24)."'"; } if(!empty($_GET['warningorder'])){//查询预警的订单:已经付款且时间超过24小时未发货 $where.= " and $tableName.is_pay = 1 "; } if(!empty($_GET['warningorder'])){//查询预警的订单:已经付款且时间超过24小时未发货 $where.= " and $tableName.status in (0,1)"; } if(!empty($_GET['count_price_max'])){//查询订单最大金额 $where.= " and $tableName.count_price <=".$_GET['count_price_max'].""; } if(!empty($_GET['user_nick_name'])){//查询采购商名称 $where.= " and fab_user.nick_name like '".$_GET['user_nick_name']."%'"; } if(!empty($_GET['user_name'])){//查询采购商账号 $where.= " and fab_user.user_name like '".$_GET['user_name']."%'"; } if(!empty($_GET['supplier_nick_name'])){//查询供应商商名称 $where.= " and fab_supplier.nick_name like '".$_GET['supplier_nick_name']."%'"; } if(!empty($_GET['supplier_name'])){//查询供应商账号 $where.= " and fab_supplier.supplier_name like '".$_GET['supplier_name']."%'"; } if($_GET['history'] == 1){ $where .= " and {$tableName}.status in (2,3,4) "; } if(($_GET['pay_type'])!=""&&($_GET['pay_type'])!=-1){//查询支付方式 $where.= " and fab_order_info.pay_type = ".$_GET['pay_type'].""; } if(($_GET['status'])!=""&&($_GET['status'])!=-1){//查询订单状态 $where.= " and fab_order_info.status = ".$_GET['status'].""; } if(!empty($_GET['stime']) && !empty($_GET['etime'])){ $stime = strtotime($_GET['stime']); $etime = strtotime($_GET['etime']) + 24*60*60; $where.= " and ($tableName.`inputtime` between '$stime' and '$etime')"; } $count = $this->where($where)->count(); $this->countNum = $count; $Page = new \Think\Page($count,$pagesize); $this->page = $Page->show(); $limit = $Page->firstRow.','.$Page->listRows; $sql="select $tableName.*,fab_supplier.nick_name as supplier_nick_name,fab_user.nick_name as user_nick_name from ($tableName left join fab_supplier on fab_order_info.supplier_id=fab_supplier.supplier_id) left join fab_user on fab_order_info.user_id=fab_user.user_id where $where order by $tableName.`order_id` desc limit $limit"; $sqls="select sum(fab_order_info.count_price) as order_price,count(fab_order_info.count_price) as order_count from $tableName where $where order by $tableName.`order_id` desc limit $limit"; $this->sql_msg=$this->query($sqls); return $this->query($sql);//订单详细信息 }
你只需要留意那个GET数据获取,然后进行拼接SQL语句;你为何总是拼接错误呢!!!
<?php namespace Admin\Model; use Think\Model; class KuaidicompanyModel extends Model { private $page = ""; public function getList($pagesize=25){ $where = '1'; $tableName = $this->getTableName(); $count = $this->where($where)->count(); $Page = new \Think\Page($count,$pagesize); $this->page = $Page->show(); $limit = $Page->firstRow.','.$Page->listRows; return $this->query("select * from $tableName where $where order by $tableName.`id` asc limit $limit "); } public function getPage(){ return $this->page; } }
精简通用版getlist,实用于分页。
<?php namespace Admin\Model; use Think\Model; class KuaidicompanyModel extends Model { private $page = ""; public function getList($pagesize=25){ $where = '1'; $tableName = $this->getTableName(); $count = $this->where($where)->count(); $Page = new \Think\Page($count,$pagesize); $this->page = $Page->show(); $limit = $Page->firstRow.','.$Page->listRows; return $this->query("select * from $tableName where $where order by $tableName.`id` asc limit $limit "); } public function getPage(){ return $this->page; } }
精简版MODEL用于数据自动验证
ThinkPHP之中getlist方法实现数据搜索功能的更多相关文章
- ThinkPHP - CURD增删改查 - 实例 - 搜索功能
模板代码: /** * 搜索数据 * @return 无返回值 */ public function search(){ //判断并接收参数 //姓名 if ( isset($_POST['usern ...
- 关于ligerui 中 grid 表格的扩展搜索功能在远程数据加载时无法使用的解决办法
要想使用grid里的扩展搜索功能,除了要引用ligerui主要的js文件外,还必须引入下面的JS文件: 1.Source\demos\filter\ligerGrid.showFilter.js 2. ...
- vue自动完成搜索功能的数据请求处理
在现在的互联网世界里,自动完成的搜索功能是一个很常见的功能.比如百度.搜狗.360搜索 ... 功能描述一下大概是这个样子的:有一个搜索框,用户在里面输入要查询的条件,系统会“智能”判断用户输完了,然 ...
- PHPCMS站内搜索功能实现方法汇总,一文解决PHPCMS站内搜索问题
1,https://blog.csdn.net/hzw19920329/article/details/80110673 点评:phpcms搜索功能实现方法,作者基于PHPCMS做个门户网站实现站内搜 ...
- dede使用方法----实现英文版的搜索功能
搜索功能在网站中是最常见的一个功能了.我们在用dede做双语网站的时候,默认的会有中文版的搜索功能.但是怎么添加一个英文版的搜索功能.各位看官,方法如下: 1.复制plus目录下的serach.php ...
- thinkphp save()方法没有数据,保存失败解决办法
thinkphp save()方法没有数据保存返回0,保存失败返回false 可以对返回值判断一下就好 $ret = $model->save($data); //var_dump($ret ...
- ThinkPHP 整合 PHPExcel ,数据导出功能实现,解决Invalid cell coordinate
PHPExcel想必大家都不陌生,是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格 本次只做数据导出功能的 ...
- C#下利用正则表达式实现字符串搜索功能的方法(转)
关键字:正则表达式.元字符.字符串.匹配: 1.正则表达式简介:正则表达式提供了功能强大.灵活而又高效的方法来处:.NET框架正则表达式并入了其他正则表达式实现的: 2.字符串搜索:正则表达式语言由两 ...
- thinkphp做搜索功能
一般后台都需要做一些搜索功能,直接上图. 至于前端页面大家自己设计.
随机推荐
- python 迭代器、生成器、装饰器
一,迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退. 特点: 访问者不需要关心迭代器内部的结构,仅需通过next()方 ...
- (转)Combobox出现System.Data.DataRowView的原因,以及指定ValueMember的时机问题
原文地址 http://blog.csdn.net/lubiaopan/article/details/5915774 当使用Combobox控件时,出现SelectedValue的值为“System ...
- Centos 时间同步服务器
From: http://www.iteye.com/topic/599648 中国国家授时中心: http://www.time.ac.cn/stime.asp 其他网络时间服务器地址如下:(也可以 ...
- Open XML SDK 在线编程黑客松
2015年2月10日-3月20日,开源社 成员 微软开放技术,GitCafe,极客学院联合举办" Open XML SDK 在线编程黑客松 ",为专注于开发提高生产力的应用及服务的 ...
- linux包转发开发
28号晚上接到这个任务的, 看了点epoll, 29号上午安装Ubuntu 12.10的G++, 开始把内网的vm虚拟机文件, 复制到外网, 重新建立一个虚拟机再更新, 最后外网也没能安装得了g++. ...
- 【测试】通过SYS用户,对SCOTT用户的会话进行跟踪,并分析此会话中性能消耗较高的SQL,分析并给出优化建议。
①连接到scott下,查询scott对应的sid,serial# SQL> select sid,serial#,username from v$session where username=' ...
- Hibernate 常见异常
Hibernate 常见异常net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error r ...
- Messenger 弹窗的使用
关于Messenger 弹窗的文档及详细的说明请参考 Messenger官网,这时只介绍 Messenger 弹窗的使用 messenger依赖与jquery和Backbone.js,可以和 Bo ...
- 洛谷P1475 控制公司 Controlling Companies
P1475 控制公司 Controlling Companies 66通过 158提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 ...
- 使用ngin的静态文件下载
1,主配置文件nginx.xml #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error. ...