问下,在进行排序的时候:$user->order(""),这里怎么进行两个字段的排序比如先通过name排序,然后通过id排序怎么写啊  这样????$user->order("name, id")    ?????

解决方案 »

  1.   

    大致这样(没有过thinkphp)
    $user->order(array("name", "id" => 'desc'))
      

  2.   

    我想LZ要的不是按两个排序吧,,可以加个group by...或者想在字段1排序的结果里再分别按字段2排序的话,,分步骤走吧,
      

  3.   

    虽然遇到问题绕着走,这是我比较赞赏的方式。毕竟是条条大路通罗马嘛
    但人家明明提供了方法,却不去使用,那就有点南辕北辙了特意下了个 ThinkPHP
    在 ThinkPHP/Lib/Think/Db/DB.class.php 中有
        /**
         +----------------------------------------------------------
         * order分析
         +----------------------------------------------------------
         * @access protected
         +----------------------------------------------------------
         * @param mixed $order
         +----------------------------------------------------------
         * @return string
         +----------------------------------------------------------
         */
        protected function parseOrder($order) {
            if(is_array($order)) {
                $array   =  array();
                foreach ($order as $key=>$val){
                    if(is_numeric($key)) {
                        $array[] =  $this->addSpecialChar($val);
                    }else{
                        $array[] =  $this->addSpecialChar($key).' '.$val;
                    }
                }
                $order   =  implode(',',$array);
            }
            return !empty($order)?  ' ORDER BY '.$order:'';
        }你们说说看,应该怎么写
      

  4.   

    Order 方法:结果排序 例如: order( 'id desc' ) 排序方法支持对多个字段的排序 order( 'status desc,id asc' ) order 方法的参数支持字符串和数组,数组的用法如下: order(array( 'status'=>'desc','id' )) 看文档吧,文档写的很清楚。