我想有過濾器下拉菜單在我的CMS符號 我的模型看起來像笨查詢在條件字符串
public function load($sort,$order,$key,$value)
{ // $key='listening'; // $value="1";
//configure pagination
$config=array(
'base_url'=>base_url().'/index.php/companies/index',
'total_rows'=>$this->db->get('company')->num_rows(),
'per_page'=>$this->settings_model->get_per_page(),
'num_links'=>20
);
$this->pagination->initialize($config);
$this->db->select('company.id,
company.name,
company.logo,
company.status_id,
company.listening',FALSE);
$this->db->select('company_category.name as category,
company_category.id as category_id',FALSE);
$this->db->select('complain_status.cs_status as status',false);
$this->db->from('company');
$this->db->join('company_category','company_category.id = company.category_id');
$this->db->join('complain_stastus', 'complain_status.cs_id = company.status_id');
if(isset($_POST['key']))
{
$value= str_replace(' ', ' ', $_POST['value']);
var_dump($value);
if($value!='0')
$this->db->having ($_POST['key'], mysql_real_escape_string($value));
}
if($sort!='' || $sort!=NULL)
$this->db->order_by ($sort, $order);
$this->db->limit($config['per_page'], $this->uri->segment(3));
$result=$this->db->get();
if(!isset($_POST['key']))
$this->filter->set_filters_list($result->result_array());
return $result->result();
}
產生下面的查詢
SELECT company.id, company.name, company.logo, company.status_id, company.listening, company_category.name as category, company_category.id as category_id, complain_status.cs_status as status
FROM (`company`)
JOIN `company_category` ON `company_category`.`id` = `company`.`category_id`
JOIN `complain_status` ON `complain_status`.`cs_id` = `company`.`status_id`
HAVING `category` = 'Health & recreation'
LIMIT 20
,你可以在這裏看到的是當類別等於一些字符串與特殊字符如Health & recreation
它的問題,它失敗,即使我試圖查詢生成的查詢它通常在MYSQL上正常工作,並得到我的結果
注:我替換m的空間$value= str_replace(' ', ' ', $_POST['value']);
因爲這個數據來自於失敗時,它有選擇的空間,所以我不得不來解析,並在後端代碼提前
由於選擇HTML元素
你怎麼知道這就是生成的查詢?你使用'echo $ this-> db-> last_query()'來確保這是正在生成的查詢嗎? – Catfish
沒有其實我只是拼錯在查詢中的任何東西,如錯誤的表名,我從ajax響應生成的錯誤得到它.. –