以条件作为参数发布的功能

时间:2018-11-28 13:27:19

标签: php mysql

我遇到了我想使用的此功能,但我想简称为DESC。我尝试了很多方法都没有成功。我试图创建第三个参数,但这不起作用。请有人帮忙吗?

public function getRows($conditions = array()){
        $sql = 'SELECT ';
        $sql .= array_key_exists("select",$conditions)?$conditions['select']:'*';
        $sql .= ' FROM '.$this->tblName;
        if(array_key_exists("where",$conditions)){
            $sql .= ' WHERE ';
            $i = 0;
            foreach($conditions['where'] as $key => $value){
                $pre = ($i > 0)?' AND ':'';
                $sql .= $pre.$key." = '".$value."'";
                $i++;
            }
        }

        if(array_key_exists("order_by",$conditions)){
            $sql .= ' ORDER BY '.$conditions['order_by']; 
        }

        if(array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
            $sql .= ' LIMIT '.$conditions['start'].','.$conditions['limit']; 
        }elseif(!array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
            $sql .= ' LIMIT '.$conditions['limit']; 
        }

        $result = $this->db->query($sql);

        if(array_key_exists("return_type",$conditions) && $conditions['return_type'] != 'all'){
            switch($conditions['return_type']){
                case 'count':
                    $data = $result->num_rows;
                    break;
                case 'single':
                    $data = $result->fetch_assoc();
                    break;
                default:
                    $data = '';
            }
        }else{
            if($result->num_rows > 0){
                while($row = $result->fetch_assoc()){
                    $data[] = $row;
                }
            }
        }
        return !empty($data)?$data:false;
    }

1 个答案:

答案 0 :(得分:0)

您可以在传入的$conditions数组中添加一个额外的“参数”,并在以下代码中对其进行检测...

if(array_key_exists("order_by",$conditions)){
    $sql .= ' ORDER BY '.$conditions['order_by']; 
    if(array_key_exists("sort_order",$conditions)){
         $sql .= ' '.$conditions['sort_order']; 
}

因此,当您调用它时,添加一个“ sort_order”元素...

$conditions['where'] = array( 'id' => $_POST['id']);
$conditions['order_by'] = 'id';
$conditions['sort_order'] = 'desc';