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

相关文章

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程