zoukankan      html  css  js  c++  java
  • 关于排序 或者搜索+排序

    第一种方法:.如果排序得数据少的话可以选择前端排序,什么意思呢,就是说在前端页面上排序,你可以写js,也可以用插件,类似的前排序插件有tablesorter ,但是这也是少数据的,而且这个分页需要自己写,比较麻烦.

    第二种方法:.当数据比较多的时候,比如10000条数据,这个时候你在前端排序就会很麻烦,那么这个时候就要选择在数据库里排序,就是在读数据的时候按照你想排序得字段来读取数据库,有写人肯会想到,我读的数据库比较多,而且有的条件比较多,不好一起查询,那么这个时候就可以用子查询,吧几个数据表单独读出来,最后排序得时候一起查询;不写字了,就直接上图

    1.按照这三个字段排序

    2.要先判断按钮的状态就要有值,还要传值到控制器

     1          <div class="body_top margin-top-20 list">
     2                     排序:
     3                     <if condition='$stype eq 1'>
     4                 <a class="btn btn-info " href="{:url('index')}">默认排序</a>
     5                 <else/>
     6                 <a class="btn " href="{:url('index')}" style="color: black">默认排序</a>
     7             </if>
     8             <if condition='$stype eq 2'>
     9                 <a href="{:url('index',array('sid'=>$sid,'stype'=>2))}" class="btn btn-info "><span>余额{$sort_i}</span></a>
    10                 <else/>
    11                  <a href="{:url('index',array('sid'=>$sid,'stype'=>2))}" class="btn" style="color: black"><span>余额{$sort_i}</span></a>
    12             </if>
    13 
    14             <if condition='$stype eq 3'>
    15                 <a href="{:url('index',array('sales'=>$sales,'stype'=>3))}" class="btn btn-info "><span>总销量{$sort_c}</span></a>
    16                 <else/>
    17               <a href="{:url('index',array('sales'=>$sales,'stype'=>3))}" class="btn" style="color: black"><span>总销量{$sort_c}</span></a>
    18             </if>
    19                 </div>

     3.接收传过来的值

    1  $param = $this->request->param();

    4.判断状态

     1         $stype=request()->param('stype');   //排序状态
     2         $sid =request()->param('sid') == 2?1 :2;  //余额
     3         $sale =request()->param('sales') == 2?1 :2; //总销量
     4 
     5         //销量排序
     6         if($stype==3){
     7             if($sale==1){
     8                 $str='sales desc';
     9                 $sort_i='<i class="fa fa-long-arrow-down"></i>';
    10             }
    11             else{
    12                 $str='sales asc';
    13                 $sort_i='<i class="fa fa-long-arrow-up"></i>';
    14             }
    15             $this->assign('sort_c',$sort_i);
    16         }
    17 
    18         //金额排序
    19         elseif($stype==2){
    20             if($sid==1){
    21                 $str='a.account desc';
    22                 $sort_i='<i class="fa fa-long-arrow-down"></i>';
    23             }
    24             else{
    25                 $str='a.account asc';
    26                 $sort_i='<i class="fa fa-long-arrow-up"></i>';
    27             }
    28             $this->assign('sort_i',$sort_i);
    29         }
    30         //默认排序
    31         else{
    32             $str='a.id desc';
    33             $stype=1;
    34         }

    5.排序查询

     1 $list=Db::table('no_bloc')
     2             ->alias('a')  //主表起别名
     3             ->field('count(DISTINCT b.id) as store,a.* ,d.sales as sales,c.sums as sum,e.dealer_name') //集团数量,销售量,集团信息
     4              5             
     6             ->order($str)
     7             ->select();
    人生得意须尽欢,莫使金樽空对月.
  • 相关阅读:
    10分钟学会SpringBoot入门
    单链表常见的4道笔试题(Java版)
    Java面试、跳槽必刷200+真面试题,让你披荆斩棘走进大厂
    金三银四JAVA面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等
    最新整理的spring面试题从基础到高级,干货满满
    面试阿里百分百问的Jvm,别问有没有必要学,真的很有必要朋友
    面试官:你们前后端分离的接口规范是什么?
    “金九银十”已过,总结我的天猫、蚂蚁、头条面试经历(Java岗)
    350道面试题分享,拿下京东offer工资double
    2019大厂Java岗面试题全曝光,刷完这1020道,金三银四大厂等你
  • 原文地址:https://www.cnblogs.com/luojie-/p/7568660.html
Copyright © 2011-2022 走看看