本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
# ThinkPHP
# getlist方法
# 数据
# 搜索功能
# thinkPHP5.1框架路由::get、post请求简单用法示例
# python3编写ThinkPHP命令执行Getshell的方法
# thinkPHP数据查询常用方法总结【select
# find
# getField
# query】
# jquery ajax结合thinkphp的getjson实现跨域的方法
# ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
# thinkphp如何传递GET参数方法详解
# 采购商
# 下单
# 转换成
# 进阶
# 相关内容
# 其他的
# 感兴趣
# 给大家
# 分页
# 表单
# 更多关于
# 所述
# 填入
# 支付方式
# 程序设计
# 精简版
# 你只需要
# 数据库查询
# 操作技巧
相关文章:
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
网站图片在线制作软件,怎么在图片上做链接?
香港服务器如何优化才能显著提升网站加载速度?
制作网站的基本流程,设计网站的软件是什么?
如何配置WinSCP新建站点的密钥验证步骤?
如何通过VPS搭建网站快速盈利?
实现虚拟支付需哪些建站技术支撑?
如何快速查询网站的真实建站时间?
建站之星云端配置指南:模板选择与SEO优化一键生成
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
高端网站建设与定制开发一站式解决方案 中企动力
,南京靠谱的征婚网站?
代购小票制作网站有哪些,购物小票的简要说明?
设计网站制作公司有哪些,制作网页教程?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
如何在七牛云存储上搭建网站并设置自定义域名?
如何获取上海专业网站定制建站电话?
视频网站制作教程,怎么样制作优酷网的小视频?
C++中引用和指针有什么区别?(代码说明)
招商网站制作流程,网站招商广告语?
如何在宝塔面板创建新站点?
建站主机系统SEO优化与智能配置核心关键词操作指南
XML的“混合内容”是什么 怎么用DTD或XSD定义
招贴海报怎么做,什么是海报招贴?
建站主机是否属于云主机类型?
高防服务器如何保障网站安全无虞?
建站之星与建站宝盒如何选择最佳方案?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
网站微信制作软件,如何制作微信链接?
安徽网站建设与外贸建站服务专业定制方案
如何高效搭建专业期货交易平台网站?
黑客如何通过漏洞一步步攻陷网站服务器?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
成都网站制作报价公司,成都工业用气开户费用?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星CMS五站合一模板配置与SEO优化指南
建站之星如何配置系统实现高效建站?
如何高效生成建站之星成品网站源码?
如何通过万网虚拟主机快速搭建网站?
h5在线制作网站电脑版下载,h5网页制作软件?
如何自定义建站之星模板颜色并下载新样式?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
PHP正则匹配日期和时间(时间戳转换)的实例代码
网站制作需要会哪些技术,建立一个网站要花费多少?
香港服务器选型指南:免备案配置与高效建站方案解析
如何快速生成橙子建站落地页链接?
如何在阿里云完成域名注册与建站?
建站之星后台管理:高效配置与模板优化提升用户体验
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
如何基于PHP生成高效IDC网络公司建站源码?
*请认真填写需求信息,我们会在24小时内与您取得联系。