PHP之多条件混合筛选功能的实现方法

如下所示:

<style type="text/css">

.search_text{ overflow:hidden; height:100%; padding-top:5px; padding-bottom:5px;}
.search_text h1{ color:#6a6a6a; font-weight:bold; float:left; font-size:14px; margin:0px; padding:0px;}
.search_text ul{ margin:0; padding:0; list-style:none; float:left; overflow:hidden; height:100%;}
.search_text li{ list-style:none; color:#6a6a6a; float:left; width:80px; padding-left:8px; padding-right:5px; white-space:nowrap}
.search_text li a{ list-style:none; color:#6a6a6a;}
.search_text li a:hover{ list-style:none; color:#fe8f01; font-weight:bold; text-decoration:underline;}
.search_text li.selected{color:#fe8f01; font-weight:bold;}
.search_text li.selected a{color:#fe8f01;}
.search_text li.selected a:hover{color:#fe8f01;}
</style>
<div class="search_text" id="year">
  <h1>生产年度:</h1>
  <ul>
   <li class="selected"><a href="javascript:goSort('year',0)" rel="external nofollow" >全部</a></li>
   <li><a href="javascript:goSort('year',1)" rel="external nofollow" >2015</a></li>
   <li><a href="javascript:goSort('year',2)" rel="external nofollow" >2014</a></li>
  </ul>
</div>
<div class="search_text" id="ctype">
  <h1>棉花类型:</h1>
  <ul>
   <li class="selected"><a href="javascript:goSort('ctype',0);" rel="external nofollow" >全部</a> </li>
   <li><a href="javascript:goSort('ctype',1);" rel="external nofollow" >手采棉</a></li>
   <li><a href="javascript:goSort('ctype',2);" rel="external nofollow" >机采棉</a></li>
   </li>
  </ul>
</div>
<div class="search_text" id="colors">
  <h1>颜 色 级 :</h1>
  <ul>
   <li class="selected"><a href="javascript:goSort('colors',0);" rel="external nofollow" >全部</a> </li>
   <li><a href="javascript:goSort('colors',1);" rel="external nofollow" >白棉1级</a></li>
   <li><a href="javascript:goSort('colors',2);" rel="external nofollow" >白棉2级</a></li>
   <li><a href="javascript:goSort('colors',3);" rel="external nofollow" >白棉3级</a></li>
   <li><a href="javascript:goSort('colors',4);" rel="external nofollow" >白棉4级</a></li>
   <li><a href="javascript:goSort('colors',5);" rel="external nofollow" >白棉5级</a></li>
   <li><a href="javascript:goSort('colors',6);" rel="external nofollow" >淡点污棉1级</a></li>
  </ul>
</div>
<div class="search_text" id="lengths">
  <h1>长 度 级 :</h1>
  <ul>
   <li class="selected"><a href="javascript:goSort('lengths',0);" rel="external nofollow" >全部</a> </li>
   <li><a href="javascript:goSort('lengths',1);" rel="external nofollow" >26CM</a></li>
   <li><a href="javascript:goSort('lengths',2);" rel="external nofollow" >27CM</a></li>
   <li><a href="javascript:goSort('lengths',3);" rel="external nofollow" >28CM</a></li>
   <li><a href="javascript:goSort('lengths',4);" rel="external nofollow" >29CM</a></li>
   <li><a href="javascript:goSort('lengths',5);" rel="external nofollow" >30CM</a></li>
   <li><a href="javascript:goSort('lengths',6);" rel="external nofollow" >31CM</a></li>
   <li><a href="javascript:goSort('lengths',7);" rel="external nofollow" >32CM</a></li>
  </ul>
</div>
<div class="search_text" id="micronaire">
  <h1>马克隆值:</h1>
  <ul>
   <li class="selected"><a href="javascript:goSort('micronaire',0);" rel="external nofollow" >全部</a> </li>
   <li><a href="javascript:goSort('micronaire',1);" rel="external nofollow" >C2</a></li>
   <li><a href="javascript:goSort('micronaire',2);" rel="external nofollow" >B2</a></li>
   <li><a href="javascript:goSort('micronaire',3);" rel="external nofollow" >A</a></li>
   <li><a href="javascript:goSort('micronaire',4);" rel="external nofollow" >B1</a></li>
   <li><a href="javascript:goSort('micronaire',5);" rel="external nofollow" >C1</a></li>
  </ul>
</div>
<script language="javascript">
function getQueryString(){
   var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));
   if(result == null){
     return "";
   }
   for(var i = 0; i < result.length; i++){
     result[i] = result[i].substring(1);
   }
   return result;
}
function goSort(name,value){
  var string_array = getQueryString();
  var oldUrl = (document.URL.indexOf("cotton.php")==-1)?document.URL+"cotton.php":document.URL;
  var newUrl;
  if(string_array.length>0)//如果已经有筛选条件
  {  var repeatField = false;
    for(var i=0;i<string_array.length;i++){
      if(!(string_array[i].indexOf(name)==-1)){
        repeatField = true;//如果有重复筛选条件,替换条件值
        newUrl = oldUrl.replace(string_array[i],name+"="+value);
      }
    }
    //如果没有重复的筛选字段
    if(repeatField == false){
      newUrl = oldUrl+"&"+name+"="+value;
    }
  }else{//如果还没有筛选条件
    newUrl = oldUrl+"?"+name+"="+value;
  }
  //跳转
  window.location = newUrl;
}
function setSelected(name,value){
  var all_li = $("#"+name).find("li");
  //清除所有li标签的selected类
  all_li.each(function(){
    $(this).removeClass("selected");
  });
  //为选中的li增加selected类
  all_li.eq(value).addClass("selected");
}
$(document).ready(function(){
  var string_array = getQueryString();
  for(var i=0;i<string_array.length;i++){
    var tempArr = string_array[i].split("=");
    setSelected(tempArr[0],tempArr[1]);//设置选中的筛选条件
  }
});
</script> 
<?php
/**
*加入搜索条件
*/
$where ="1";
$year_array = array(1=>'2015',2=>'2014');
$ctype_array = array(1=>'0',2=>'1');
$colors_array = array(1=>'0',2=>'1',3=>'2',4=>'3',5=>'4',6=>'5');
$lengths_array = array(1=>'0',2=>'1',3=>'2',4=>'3',5=>'4',6=>'5',7=>'6');
$micronaire_array = array(1=>'0',2=>'1',3=>'2',4=>'3',5=>'4');

if(isset($year)&&($year!=0)) $where .= " AND year=".$year_array[$year];
if(isset($ctype)&&($ctype!=0)) $where .= " AND ctype=".$ctype_array[$ctype];
if(isset($colors)&&($colors!=0)) $where .= " AND colors=".$colors_array[$colors];
if(isset($lengths)&&($lengths!=0)) $where .= " AND lengths=".$lengths_array[$lengths];
if(isset($micronaire)&&($micronaire!=0)) $where .= " AND micronaire=".$micronaire_array[$micronaire];
/**
*加入搜索条件
*/
?>

PHP中获取到$where条件,加入到SQL语句中获取数据列表。

以上这篇PHP之多条件混合筛选功能的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于JavaScript实现前端数据多条件筛选功能

    有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置. 仿照京东的筛选条件,这里就取价格区间和品牌作为测试. 代码 代码中主要使用js的过滤器Array.prototype.filter,该方法会对数组元素进行遍历检查,返回一个符合检查条件的新数组,不会改变原数组. // filter() var foo = [0,1,2,3,4,5,6,7,8,9]; var f

  • laravel多条件查询方法(and,or嵌套查询)

    说明 在日常开发中,经常会需要写多条件的数据库查询语句.在使用框架的情况下,单纯使用原生sql查询会导致结果与model无法对应,也就没有办法使用框架的一些便利的方法对结果集进行处理.尤其是laravel提供了非常多的对查询结果集进行处理的工具.所以最好是使用laravel提供的ORM进行多条件的数据库查询. 问题 比如需要执行这样一条sql语句 select * from homework where (id between 1 and 10 or id between 50 and 70)

  • 利用PHP访问数据库_实现分页功能与多条件查询功能的示例

    1.实现分页功能 <body> <table width="100%" border="1"> <thead> <tr> <th>代号</th> <th>名称</th> <th>价格</th> </tr> </thead> <tbody> <?php require_once "./DBDA.cl

  • PHP之多条件混合筛选功能的实现方法

    如下所示: <style type="text/css"> .search_text{ overflow:hidden; height:100%; padding-top:5px; padding-bottom:5px;} .search_text h1{ color:#6a6a6a; font-weight:bold; float:left; font-size:14px; margin:0px; padding:0px;} .search_text ul{ margin

  • 基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)

    基于Vue实现的多条件筛选功能(类似京东和淘宝功能),可以支持多选.清空.全选功能,数据源是通过JSon格式的数据封装而成. 实现的效果图: 代码实现如下: html: <div id='app'> <template v-if='condition.length'> <div> <span>已选中:<span> <span v-for='(item,index) in condition' class='active'>{{item

  • 对numpy中的数组条件筛选功能详解

    在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.array(['int','float','int','boolean','double','boolean']) In [64]: data Out[64]: array(['int', 'float', 'int', 'boolean', 'double', 'boolean'], dtype='|

  • Python Pandas条件筛选功能

    目录 一.准备数据 二.以>,<,==,>=,<=来进行选择 三..isin() 四..str.contains()实现 一.准备数据 import pandas as pd   data = pd.read_excel(r'销售数据.xlsx') print(data) 数据如下: 二.以>,<,==,>=,<=来进行选择 “等于”一定是用‘==’,如果用‘=’就不是判断大小了: 例如:筛选销售员是马姐的数据 df = data[data['销售员'] =

  • js实现表格筛选功能

    本应用就两个主要实现: 1.表格的id 和 class之间的命名关系 请看图: 将组名和个人信息联表格联系起来,这样会很好的操作表格 HTML代码: <tr class="parent" id="row_01"><td colspan="3">前台设计组</td></tr> <tr class="child_row_01"><td>张三</td>

  • JS实现table表格内针对某列内容进行即时搜索筛选功能

    本文实例讲述了JS实现table表格内针对某列内容进行即时搜索筛选功能.分享给大家供大家参考,具体如下: 往往有些时候,我们把数据从数据库读取出来,显示到table里面,而此时来了个新需求,要在一个搜索框内输入关键字,表格的内容进行即时的筛选. 而即时触发进行数据库的查询,再回调显示,就显得慢,拖累服务器,降低用户体验度,这时,要是有个纯js操作,进行表格某列的即时筛选,这样既能提高搜索速度,也不用占用服务器资源,用户自然也满意. 实现如下,先看效果图, 开始状态: 在输入框内输入'e',表格即

  • 原生js实现商品筛选功能

    本文实例为大家分享了js商品筛选功能的具体代码,供大家参考,具体内容如下 用到的知识:js基础.dom.第一种方法用到的是js中的数组方法,第二种方法用到的是json和for-in以及es6 实现步骤 1.根据数据结构生成HTML结构(利用dom操作) 2.获取每一个li,给每一个li中每一个a标签绑定事件处理函数 3.点击a标签,把a标签的内容添加在对象中,同时添加样式 4.根据对象存的属性生成选择则条件的HTML结构(按顺序排列) 5.点击关闭选择的条件,删除数据,移除HTML结构,去除在其

  • Android Filterable实现Recyclerview筛选功能的示例代码

    原先碰到筛选这种功能时,后端的接口都会让上传一个字段,根据字段来返回相应的数据.后来一次和别人对接时,接口直接返回全部数据,而且还要实现筛选功能.我...我说不就是一条sql语句的事,改接口多方便,我苦心劝导,然后被怼回来,切,不就是筛选嘛,求人不如自己搞. 1. 效果图 2. 思路 既然是筛选,那就少不了比较.也没有什么好的办法,无非就是循环对比,然后将适配器进行数据更新.页面刷新即可.但筛选的调用要方便,怎么比较才方便我们调用呢?偶然间看到了Filterable,使Adapter继承自该接口

  • vue 使用饿了么UI仿写teambition的筛选功能

    问题描述 teambition软件是企业办公协同软件,相信部分朋友的公司应该用过这款软件.里面的筛选功能挺有意思,本篇文章,就是仿写其功能.我们先看一下最终做出来的效果图 大致的功能效果有如下 需求一:常用筛选条件放在上面直接看到,不常用筛选条件放在添加筛选条件里面 需求二:筛选的方式有输入框筛选.下拉框筛选.时间选择器筛选等 需求三:如果觉得常用筛选条件比较多的话,可以鼠标移入点击删除,使之进入不常用的筛选条件里 需求四:也可以从不常用的筛选条件里面点击对应筛选条件使之"蹦到"常用筛

随机推荐