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

相关文章

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

hdu 1285(拓扑排序)

题意: 给各个队间的胜负关系,让排名次,名词相同按从小到大排。 解析: 拓扑排序是应用于有向无回路图(Direct Acyclic Graph,简称DAG)上的一种排序方式,对一个有向无回路图进行拓扑排序后,所有的顶点形成一个序列,对所有边(u,v),满足u 在v 的前面。该序列说明了顶点表示的事件或状态发生的整体顺序。比较经典的是在工程活动上,某些工程完成后,另一些工程才能继续,此时

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

【软考】希尔排序算法分析

目录 1. c代码2. 运行截图3. 运行解析 1. c代码 #include <stdio.h>#include <stdlib.h> void shellSort(int data[], int n){// 划分的数组,例如8个数则为[4, 2, 1]int *delta;int k;// i控制delta的轮次int i;// 临时变量,换值int temp;in

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

Oracle Start With关键字

Oracle Start With关键字 前言 旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人. Start With (树查询) 问题描述: 在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下: ID, DSC, PID; 三个字段, 分别表示 当前标识的 ID(主键), DSC 当

关键字synchronized、volatile的比较

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字的执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。多线程访问volatile不会发生阻塞,而synchronize

oracle分页和mysql分页

mysql 分页 --查前5 数据select * from table_name limit 0,5 select * from table_name limit 5 --limit关键字的用法:LIMIT [offset,] rows--offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。   oracle 分页 --查前1-9

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图