2016-01-25 55 views
4

由於原因,我需要傳遞給where條件的字符串而不是行的ID。問題在於條件只能捕獲選定值的第一個單詞。例如,看一下這段代碼:SQL條件只接收字段值的一個字

<select id="brand" name="brand" required> 
    <option value="Lorem Ipsum Dolor" selected>Lorem Ipsum Dolor</option> 
</select> 

然後,通過呼應last_query(),病情會顯示:

... WHERE `table.column` = `Lorem` ... 

而不是整個value

這是我的查詢:

public function find_id_ano_modelo($marca, $modelo, $ano, $comb) 
{ 
    $this->db 
     ->select('ano_modelo.id') 
     ->join('modelo', 'modelo.id = ano_modelo.id_modelo') 
     ->join('marca', 'marca.id_marca = modelo.id_marca') 
     ->where('marca.id_marca', $marca) 
     ->where('modelo.modelo', $modelo) 
     ->where('ano_modelo.ano', $ano) 
     ->where('ano_modelo.combustivel', $comb) 
     ->where('marca.tipo = 1'); 

    $query = $this->db->get($this->table); 

    echo $this->db->last_query(); 

    if ($query) { 
     foreach ($query->result_array() as $q) { 
      return $q['id']; 
     } 
    } 
} 

這被稱爲在我edit方法從我的控制器:

... 
$marca = $this->input->post('id_marca'); 
$modelo = $this->input->post('id_modelo'); 
$ano = $this->input->post('ano'); 
$comb = $this->input->post('combustivel'); 

$data['id_ano_modelo'] = $this->Modelos_model->find_id_ano_modelo($marca, $modelo, $ano, $comb); 
.... 
+0

你是如何構建查詢的?你在哪裏/如何獲得用於構建它的值? –

+0

@AlexTartan查詢是按照文檔解釋的方式構建的,並且值從表單中以POST形式檢索。請看我的編輯。 – mfgabriel92

+0

你可以'echo $ marca;'(或者那個'