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

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

C++归并排序代码实现示例代码

《C++归并排序代码实现示例代码》归并排序将待排序数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并,得到排序后的数组,:本文主要介绍C++归并排序代码实现的相关资料,需要的... 目录1 算法核心思想2 代码实现3 算法时间复杂度1 算法核心思想归并排序是一种高效的排序方式,需要用

Java中的volatile关键字多方面解析

《Java中的volatile关键字多方面解析》volatile用于保证多线程变量可见性与禁止重排序,适用于状态标志、单例模式等场景,但不保证原子性,相较synchronized更轻量,但需谨慎使用以... 目录1. volatile的作用1.1 保证可见性1.2 禁止指令重排序2. volatile的使用