PHP[封装]——关键字,时间段,其他条件搜素,排序,分页

2024-04-27 08:58

本文主要是介绍PHP[封装]——关键字,时间段,其他条件搜素,排序,分页,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用说明:引入DatePicker文件夹到Public目录,并在script脚本引入是写好相对路径。
 

<script language="javascript" type="text/javascript" src="__PUBLIC__/DatePicker/WdatePicker.js"></script><!--时间选择器--><select name="status" id="disabledSelect" class="form-control"><option <eq name="status" value="0">selected</eq> value="0">-请选择-</option><option <eq name="status" value="1">selected</eq> value="1">完成</option><option <eq name="status" value="2">selected</eq> value="2">医生拒绝</option><option <eq name="status" value="3">selected</eq> value="3">患者取消</option></select><input name="stime" id="startT" class="form-control" type="text" placeholder="下单时间段 " onClick="WdatePicker()" value="{$cond['stime']}"/><input name="etime" id="endT" class="form-control" type="text" placeholder="下单时间段" onClick="WdatePicker()" value="{$cond['etime']}"/><input class="form-control btn-primary" type="submit" value="筛选" /><!--分页--><span style="margin-right: 20px;"><span style="float: left;">共{$cond['count']}条</span><select id="page" οnchange="page($(this).val())"><for start="0" end="$cond['pageCount']"><option value="{$i+1}" <eq name="cond['page']" value="{$i+1}">selected</eq>>{$i+1}</option></for></select></span>

js脚本代码

			function page(p){var status=$("select[name='status']").val();var stime=$("input[name='stime']").val();var etime=$("input[name='etime']").val();var str='';if(status!='') str+='&status='+status;if(stime!='' && etime!='')str+='&stime='+stime+'&etime='+etime;window.location.href="__CONTROLLER__/orderList&page="+p+str;}

方法放在function.php中,控制器调用$sql=SearchForPage_Key($sql,null,'order_time','order_time',$other,'order_time');

并用  $this->cond=$sql;  将搜索条件分配回页面

<pre name="code" class="php">/*** MySQL通用条件搜索方法**主SQL FROM要大小(子查询要小写)* @param I('keyword')  * @param I('stime')* @param I('etime')* @param I('page')* @param C('pageSize')或在这里注明* ==========================* @param $sql		主搜索语句* @param $kwField	关键字* @param $sTField	开始时间* @param $eDField	结束时间* @param $other	其他条件(sql语句)* @param $is_page	是否分页,默认$is_page=1 开启分页* * @return $sql		array('sql'=>$sql,'count'=>$count,'pageCount'=>$pageCount,'page'=>$p,'keyword'=>$keyword,'stime'=>$stime,'etime'=>$etime);*/
function SearchForPage_Key($sql,$kwField,$sTField,$eDField,$other=null,$orderByField,$is_page=1){//关键字$keyword=I('keyword');if(!empty($keyword)) $sql="$sql AND $kwField like '%".trim($keyword)."%'";//时间段$stime=I('stime');$etime=I('etime');if(!empty($stime) && !empty($etime)) $sql="$sql AND ($sTField>='$stime' AND $eDField<='$etime' )";//其他if($other) $sql="$sql $other";//排序if($orderByField) $sql="$sql order by $orderByField desc";//分页if($is_page){//数据条数$cond=strstr($sql,'FROM');$countSql="select count(*) as c $cond";//截取主语句中From之后$count=M()->query($countSql);if(!empty($count['c'])){$count=$count['c'];}else{$count=$count[0]['c'];}$pageSize= 10;$p=I('page');if($p==null || $p<1) $p=1;$pageCount=ceil(($count/$pageSize));if(!$pageCount)$pageCount=1;if($pageCount<$p){echo "pc:$pageCount|count:$count|p:$p";request_result(0, '暂无更多信息', 0);}$start=($p-1)*$pageSize;$sql="$sql limit $start,$pageSize";}if(!$count) $count=0;return array('sql'=>$sql,'count'=>$count,'pageCount'=>$pageCount,'page'=>$p,'keyword'=>$keyword,'stime'=>$stime,'etime'=>$etime);
}

 



这篇关于PHP[封装]——关键字,时间段,其他条件搜素,排序,分页的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940065

相关文章

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

c# checked和unchecked关键字的使用

《c#checked和unchecked关键字的使用》C#中的checked关键字用于启用整数运算的溢出检查,可以捕获并抛出System.OverflowException异常,而unchecked... 目录在 C# 中,checked 关键字用于启用整数运算的溢出检查。默认情况下,C# 的整数运算不会自

Python中lambda排序的六种方法

《Python中lambda排序的六种方法》本文主要介绍了Python中使用lambda函数进行排序的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1.对单个变量进行排序2. 对多个变量进行排序3. 降序排列4. 单独降序1.对单个变量进行排序