您好,欢迎访问一九零五行业门户网

封装的比select更好用的查询方法

查询的数据,通常需要整理,比如:status 1成功,2失败,要转成文字描述.于是专门封装一个方法,让查询与整理一步到位.大家觉得我代码风格怎么样?欢迎留言.
先看结果
图上默认是追加,而不是覆盖原字段值,当然,这个是可以选择的.
代码图:
配置文件
/**
     * 查询记录
     */
    public function choose($where=array(), $field='*', $limit='', $order='', $append='txt'){
if(is_numeric($where)){
            $where = array('id'=>$where); $single = true;
        }
if(is_array($limit)){
            if(isset($limit['start'])){
                $this->limit($limit['start'], $limit['length']);
            }else{
                $this->page($limit['page'], $limit['size']);
            }
        }
$options = $this->field($field)->join($join)->where($where)->order($order)->_parseoptions();//保留查询参数以备用
        $record = $this->setproperty('options', $options)->alias('my')->select();
        if(stripos(',', $field) === false &&  preg_match('/.*\(.+\)/', $field)){
            return array_shift(current($record));
        }
        if(empty($record)) return $record;
foreach($record as &$row){
            foreach($row as $field => $value){
                if(is_string($append)){
                    $_append = $append;
                }else{
                    $_append = isset($append[$field])? $append[$field] : (isset($append[0])? $append[0] : 'txt');
                }
                if(!empty($_append)) $_append = '_'.$_append;
                $text = field_text($options['table'], $field, $value, $row, true);
                if($text !== null) $row[$field . $_append] = $text;
}
        }
return empty($single)? $record : $record[0];    //单条记录
}
/**
 * 表字段转文字说明
 * @param unknown $table 表名
 * @param unknown $field 字段名
 * @param unknown $value 字段值
 * @param unknown $same 为空时,是否返回原始值
 * @return string 文本值
 */
function field_text($table, $field, $value, $row=array(), $default=true){
$config = c('field_options');
    if(!isset($config[$table][$field])) return null;
    if(!is_array($row)){
        $default = $row; $row = array();
    }
    if(is_callable($config[$table][$field])){
        $func = $config[$table][$field];
        $return = $func($row);
    }else{
        $return = isset($config[$table][$field][$value])? $config[$table][$field][$value] : (is_string($default)? $default : ($default? $value : ''));
    }
    return $return;
}
ad:真正免费,域名+虚机+企业邮箱=0元
其它类似信息

推荐信息