排序,搜索 代码

<p>
排序方式:
<?php $obdy = I(‘get.odby‘, ‘id_desc‘); // 如果odby为空,那么默认是id_desc ?>
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="id_desc" <?php if($obdy == ‘id_desc‘) echo ‘checked="checked"‘; ?> /> 以添加时间降序
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="id_asc" <?php if($obdy == ‘id_asc‘) echo ‘checked="checked"‘; ?> /> 以添加时间升序
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="price_desc" <?php if($obdy == ‘price_desc‘) echo ‘checked="checked"‘; ?> /> 以价格降序
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="price_asc" <?php if($obdy == ‘price_asc‘) echo ‘checked="checked"‘; ?> /> 以价格升序
</p>

/***************** 排序 *****************/
$orderby = ‘id‘; // 默认的排序字段
$orderway = ‘desc‘; // 默认的排序方式
$odby = I(‘get.odby‘);
if($odby)
{
if($odby == ‘id_asc‘)
$orderway = ‘asc‘;
elseif ($odby == ‘price_desc‘)
$orderby = ‘shop_price‘;
elseif ($odby == ‘price_asc‘)
{
$orderby = ‘shop_price‘;
$orderway = ‘asc‘;
}
}

/************** 取某一页的数据 ***************/
$data = $this->order("$orderby $orderway") // 排序
->where($where) // 搜索
->limit($pageObj->firstRow.‘,‘.$pageObj->listRows) // 翻页
->select();

-------------------------------------------------------------------

-----------------全部代码----------------------------------------

//实现翻页,搜索和排序
public function search($perPage=15)
{

/*************** 搜索 ******************/
$where = array(); // 空的where条件
// 商品名称
$gn = I(‘get.gn‘);
if($gn)
$where[‘goods_name‘] = array(‘like‘, "%$gn%"); // WHERE goods_name LIKE ‘%$gn%‘
// 价格
$fp = I(‘get.fp‘);
$tp = I(‘get.tp‘);
if($fp && $tp)
$where[‘shop_price‘] = array(‘between‘, array($fp, $tp)); // WHERE shop_price BETWEEN $fp AND $tp
elseif ($fp)
$where[‘shop_price‘] = array(‘egt‘, $fp); // WHERE shop_price >= $fp
elseif ($tp)
$where[‘shop_price‘] = array(‘elt‘, $tp); // WHERE shop_price <= $fp
// 是否上架
$ios = I(‘get.ios‘);
if($ios)
$where[‘is_on_sale‘] = array(‘eq‘, $ios); // WHERE is_on_sale = $ios
// 添加时间
$fa = I(‘get.fa‘);
$ta = I(‘get.ta‘);
if($fa && $ta)
$where[‘addtime‘] = array(‘between‘, array($fa, $ta)); // WHERE shop_price BETWEEN $fp AND $tp
elseif ($fa)
$where[‘addtime‘] = array(‘egt‘, $fa); // WHERE shop_price >= $fp
elseif ($ta)
$where[‘addtime‘] = array(‘elt‘, $ta); // WHERE shop_price <= $fp

/********翻页*******/
//取出总的记录数
$count=$this->where($where)->count();
//生成翻页类的对象
$pageObj=new \Think\Page($count,$perPage);

//设置样式
$pageObj->setConfig(‘next‘,‘下一页‘);
$pageObj->setConfig(‘prev‘,‘上一页‘);

//生成页面下面显示的上一页和下一页
$pageString=$pageObj->show();

/***************** 排序 *****************/
$orderby = ‘id‘; // 默认的排序字段
$orderway = ‘desc‘; // 默认的排序方式
$odby = I(‘get.odby‘);
if($odby)
{
if($odby == ‘id_asc‘)
$orderway = ‘asc‘;
elseif ($odby == ‘price_desc‘)
$orderby = ‘shop_price‘;
elseif ($odby == ‘price_asc‘)
{
$orderby = ‘shop_price‘;
$orderway = ‘asc‘;
}
}

/************** 取某一页的数据 ***************/
$data = $this->order("$orderby $orderway") // 排序
->where($where) // 搜索
->limit($pageObj->firstRow.‘,‘.$pageObj->listRows) // 翻页
->select();

/*********返回数据******/
return array(
‘data‘=>$data, //数据
‘page‘ =>$pageString, //翻页数据
);
}

---------------------------------------------------

<!-- 搜索表单 -->
<div class="form-div">
<form action="__ACTION__" method="GET" name="searchForm">
<P>
商品名称:
<input value="<?php echo I(‘get.gn‘); ?>" type="text" name="gn" size="60" />
</P>
<P>
价  格:
从<input value="<?php echo I(‘get.fp‘); ?>" type="text" name="fp" size="8" />
到<input value="<?php echo I(‘get.tp‘); ?>" type="text" name="tp" size="8" />
</P>
<P>
是否上架:
<?php $ios = I(‘get.ios‘); ?>
<input type="radio" name="ios" value="" <?php if($ios == ‘‘) echo ‘checked="checked"‘; ?> /> 全部
<input type="radio" name="ios" value="是" <?php if($ios == ‘是‘) echo ‘checked="checked"‘; ?> /> 上架
<input type="radio" name="ios" value="否" <?php if($ios == ‘否‘) echo ‘checked="checked"‘; ?> /> 下架
</P>
<P>
添加时间:
从<input type="text" id="fa" name="fa" value="<?php echo I(‘get.fa‘); ?>" size="20" />
到<input type="text" id="ta" name="ta" value="<?php echo I(‘get.ta‘); ?>" size="20" />
</P>

<p>
排序方式:
<?php $obdy = I(‘get.odby‘, ‘id_desc‘); // 如果odby为空,那么默认是id_desc ?>
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="id_desc" <?php if($obdy == ‘id_desc‘) echo ‘checked="checked"‘; ?> /> 以添加时间降序
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="id_asc" <?php if($obdy == ‘id_asc‘) echo ‘checked="checked"‘; ?> /> 以添加时间升序
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="price_desc" <?php if($obdy == ‘price_desc‘) echo ‘checked="checked"‘; ?> /> 以价格降序
<input onclick="this.parentNode.parentNode.submit();" type="radio" name="odby" value="price_asc" <?php if($obdy == ‘price_asc‘) echo ‘checked="checked"‘; ?> /> 以价格升序
</p>

<P>
<input type="submit" value="搜索" />
</P>
</form>
</div>

时间: 2024-11-10 07:37:49

排序,搜索 代码的相关文章

在Mac OS X上利用Spotlight搜索代码

用grep来搜代码和方便,最原生态了,常用的: ? ~ grep 'NuPlayer' -iInr --color ./aosp 其中`i`表示大小写忽略:`I`表示忽略binary文件:`n`显示搜索结果的行号:`r`表示递归搜索子目录 不过grep搜索有点慢,网上也很多通过建立索引加快搜索速度的方法:"other grep-like tools and indexing tools" 一向用户体验著称的Mac指定不会缺少这个,`Spotlight`就是系统自带的基于索引搜索工具,使

希尔排序及希尔排序java代码

原文链接:http://www.orlion.ga/193/ 由上图可看到希尔排序先约定一个间隔(图中是4),然后对0.4.8这个三个位置的数据进行插入排序,然后向右移一位对位置1.5.9进行插入排序按照此规律直到全部参与了排序.然后将间隔约定为4-1=3,然后继续进行如上的排序方法.具体过程如下: 9 1 2 3 0 4 5 7 6 8 Setp 1 经过间隔为4排序后变成 : 0 1 2 3 6 4 5 7 9 8 Setp 2 经过间隔为3排序后变成 : 0 1 2 3 6 4 5 7 9

编程算法 - 排序分割 代码(C)

排序分割 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 排序分割, 把一个数组分为, 大于k\小于k\等于k的三个部分. 可以使用快速排序的Partition函数, 进行处理, 把大于k的放在左边, 小于k的放在右边. 使用一个变量记录中间的位置, 则时间复杂度为O(3n/2). 代码: /* * main.cpp * * Created on: 2014.9.18 * Author: Spike */ /*eclipse cdt, gcc 4.

代码实现:模拟斗地主洗牌和发牌并对牌进行排序的代码实现

package com.loaderman.test; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet; public class Test{ /** * * A:案例演示 * 模拟斗地主洗牌和发牌并对牌进行排序的代码实现 * * 分析: * 1,买一副扑克,其实就是自己创建一个集合对象,将扑克牌存储进去 * 2,洗牌 * 3,

js对数组元素大小排序实例代码

js对数组元素大小排序实例代码:在实际应用中,有时候需要对数组中的元素按照大小来进行排序,当然是先排序的方法有多种,比如使用数组对象自带的sort()方法,本章节再来分享一种其他的方式,先看代码实例: var org=[5,4,3,2,1,6,7,9,8,10]; var tempArr=new Array(); for(var i=0;i<org.length;i++) { if(i==0) { tempArr[0]=org[0]; //把第一个元素放到新序列 } else { for(var

编程算法 - 高速排序算法 代码(C)

高速排序算法 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 经典的高速排序算法, 作为一个编程者, 不论什么时候都要完整的手写. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <stdlib.h> int RandomInRange(int mi

js数组元素由小到大排序实例代码

js数组元素由小到大排序实例代码:有时候需要对数组中的数字进行排序,下面是一段将数组中数字由小到大排序的代码实例,希望能够帮到大家.实例代码如下: var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98]; var len=arr.length; console.log(arr.join(",")); var newarr=[]; for(var i=0;i<len;i++){ newarr.push(Math.min.apply(nu

Html 小插件5 百度搜索代码2

网页添加百度搜索框代码大全 ★ 用法:在下面选择合适的样式,复制代码到网页中相应位置粘贴即可. ★ 样式一(200×30)代码: <iframe id="baiduframe" marginwidth="0" marginheight="0" scrolling="no"  framespacing="0" vspace="0" hspace="0" frame

java桶式排序算法代码下载

原文:java桶式排序算法代码下载 代码下载地址:http://www.zuidaima.com/share/1550463272176640.htm 桶式排序: * 桶式排序不再是基于比较的了,它和基数排序同属于分配类的排序, * 这类排序的特点是事先要知道待排 序列的一些特征. * 桶式排序事先要知道待排 序列在一个范围内,而且这个范围应该不是很大的. * 比如知道待排序列在[0,M)内,那么可以分配M个桶,第I个桶记录I的出现情况, * 最后根据每个桶收到的位置信息把数据输出成有序的形式.

yourphp搜索代码

HTML代码 <form method="GET" action="index.php?"> //指向地址 <input type="hidden" id="" name="m" value="Search"/> <select id="module" name="module" style="display