无法在mysql查询

时间:2016-01-24 11:04:42

标签: php mysql codeigniter

我是codeigniter的新手并且正在处理我需要在页面上添加搜索过滤器的项目。它在Applications / core下的设置方式有一个MY_Model.php文件,这里有get_result函数。

function get_result() {
  $this->db->from($this->tableName . ' ' . $this->alias);
  $this->db->select($this->selectFields, FALSE);

  for($j=0;$j<count($this->arrJoins);$j++){
    $this->db->join($this->arrJoins[$j][0], $this->arrJoins[$j][1], $this->arrJoins[$j][2]);
  }

  $this->db->like($this->arrLike);
  $this->db->or_like($this->arrOrLike);
  if(isset($this->custLikeStr) && count($this->custLikeStr) > 0){
    $this->db->where($this->custLikeStr);
  }
  $this->db->where($this->arrWhere);
  $this->db->order_by($this->sortBy, $this->sortOrder);
  $query = $this->db->get()->result();
  //echo '<br>'.$this->db->last_query();
  return $query;
}

有一个get_where函数来构建所有where子句

function get_where() {
  foreach($this->arrWhereInputs as $arrWhereInput) {
    if(isset($this->$arrWhereInput) && $this->$arrWhereInput != ''){
      $this->arrWhere[$this->fieldAlias[$arrWhereInput].'.'.$arrWhereInput] = trim($this->$arrWhereInput);
    }
  }
  return $this->arrWhere;
}

在应用程序的模型文件中,所以在应用程序/模型下这里有一个我们需要调用以获取结果的select函数。

function select(){
    /* for search list */
    $this->arrLikeInputs = array('stock_title', 'stock_id', 'price_band', );
    $this->arrWhereInputs = array();
    $this->arrWhere = array();

    if ($this->input->post('record_per_page') != '') {
        $records_per_page = $this->input->post('record_per_page');
    } else {
        $records_per_page = ROWS_PER_PAGE;
    }

    if (!(isset($this->record_per_page) && $this->record_per_page != '')) {
        $this->record_per_page = ROWS_PER_PAGE;
    }

    $this->arrLike = $this->get_like();
    $this->arrWhere = $this->get_where();
    $this->arrWhere['SC.isDeleted'] = 0;

    /* for search list */
    if ($this->countQuery == 1) {
        $this->db->from($this->tableName . ' ' . $this->alias);
        $this->countSelectFields = 'COUNT(SC.stock_id) as cnt';
        $result['count'] = $this->get_count();
    }

    $result['resultarr'] = $this->get_result();
    $result['record_per_page'] = $records_per_page;

    return $result;
}

现在我想在我的查询中添加位置,我尝试了几种方法,但它只是不起作用。

我对这样一个简单的事情我的错误感到困惑。

所以我添加了一个get_wherein函数。

function get_wherein() {
  foreach($this->arrWhereInInputs as $arrWhereInInput) {
      if(isset($this->$arrWhereInInput) && $this->$arrWhereInInput != ''){
        $this->arrWhereIn[$this->fieldAlias[$arrWhereInInput].'.'.$arrWhereInInput] = trim($this->$arrWhereInInput);
      }
    }
    return $this->arrWhereIn;
}

所以我添加了$this->arrWhereIn['Field'] = $arr这不起作用,并且还尝试直接在select函数中调用$this->db->where_in('field',$array),但也无效。在这两种情况下,它都会被忽略,而查询是在没有&#34;以及在&#34;中的位置构建的。

我哪里出错了以及如何构建此查询?

0 个答案:

没有答案