[英]can not retrive data from db using codeigniter
我需要使用codeigniter中的“ get_where”短語從數據庫獲取數據。
要構建的預期查詢是: select * from tele_data where F_NAME="" and M_NAME="" and L_NAME="" and FACTORY="" and DEPT="" and COMPANY_NAME="" and DESIGNATION=""
<div class="form-row">
<label>
<span style="color:#ff4d4d">Factory Name :</span>
<select name="fcode" id="fcode">
<option value="CMGM">Crystal Martin Ceylon - Malwatta</option>
<option value="CMW">Crystal Martin Ceylon - Wathupitiwala</option>
<option value="CMG">Crystal Martin Ceylon - Garments</option>
<option value="CME" selected>Crystal Martin Ceylon - Europe</option>
<option value="CMCG">Crystal Martin Central - Galagedara</option>
<option value="CMPK">Crystal Martin Ceylon - Kanthale</option>
<option value="CMCD">Crystal Martin Central - Dambulla</option>
</select>
</label>
</div>
<div class="form-row">
<label>
<span>First Name :</span>
<input type="text" name="fname" id="fname" >
</label>
</div>
<div class="form-row">
<label>
<span>Middle Name :</span>
<input type="text" name="mname" id="mname">
</label>
</div>
<div class="form-row">
<label>
<span>Last Name :</span>
<input type="text" name="lname" id="lname">
</label>
</div>
<div class="form-row">
<label>
<span>Department :</span>
<select name="department" id="department">
<option selected>Select One</option>
<option value="IT">Information Technology (IT)</option>
<option value="HR">Human Resources & Administration</option>
<option value="IE">Work Study</option>
<option value="QA">Quality Assurance & Control</option>
<option value="LEAN">Lean</option>
<option value="GENERAL">General</option>
<option value="OTHER">Other</option>
</select>
</label>
</div>
<div class="form-row">
<label>
<span>Company Name :</span>
<input type="text" name="compname" id="compname">
</label>
</div>
<div class="form-row">
<label>
<span>Designation :</span>
<input type="text" name="designation" id="designation">
</label>
</div>
<div class="form-row">
<button type="submit">Search Now</button>
</div>
</form>
我已將工廠名稱為“ CMG”和部門為“ IT”,作為表單的輸入。其他為空。
public function search_results()
{
$sdata = [
'FACTORY'=>$this->input->post('fcode'),
'F_NAME'=>$this->input->post('fname'),
'M_NAME'=>$this->input->post('mname'),
'L_NAME'=>$this->input->post('lname'),
'DEPT'=>$this->input->post('department'),
'COMPANY_NAME'=>$this->input->post('compname'),
'DESIGNATION'=>$this->input->post('designation')
];
$this->load->model('users');
$y=$this->users->display_users($sdata);
//var_dump($y);die;
if($y==TRUE){
$data["display_Data"]=$y;
$this->load->view("results/find",$data);
} else {
redirect("/index/home");
}
}
控制器捕獲輸入並將數據成功傳遞給模型
function display_users($sdata){
$query=$this->db->get_where('tele_data',$sdata);
$result=$query->result_array();
var_dump($result);die;
if($query->result_array()==TRUE){
foreach ($query->result_array() as $vals){
echo $vals['SD'];
echo $vals['EXT'];
echo $vals['F_NAME'];
echo $vals['M_NAME'];
echo $vals['L_NAME'];
echo $vals['FACTORY'];
echo $vals['DEPT'];
echo $vals['COMPANY_NAME'];
echo $vals['DESIGNATION'];
}
return $query->result_array();
} else {
return FALSE;
}
}
但是var_dump命令給了我一個空數組作為結果,這是什么原因呢?我已經附上了一張db圖片供您參考,但是當我在MySql中單獨運行查詢時,它給了我預期的結果。 看到數據庫圖像,請幫助我盡快進行排序。
我的控制器
嘗試這個
$this->db->select('*');
$this->db->from('tele_data');
$this->db->where($sdata);
$query = $this->db->get();
return $query->result_array();
像下面一樣更改數據數組部分
$sdata = [
'FACTORY'=>isset($this->input->post('fcode'))?$this->input->post('fcode'):'',
'F_NAME'=>isset($this->input->post('fname'))?$this->input->post('fname'):'',
'M_NAME'=>isset($this->input->post('mname'))?$this->input->post('mname'):'',
'L_NAME'=>isset($this->input->post('lname'))?$this->input->post('lname'):'',
'DEPT'=>isset($this->input->post('department'))?$this->input->post('department'):'',
'COMPANY_NAME'=>isset($this->input->post('compname'))?$this->input->post('compname'):'',
'DESIGNATION'=>isset($this->input->post('designation'))?$this->input->post('designation'):''
];
我使用CI已有很長時間了,就查詢中是否包含AND
而言,我不應該使用get_where()
,而應使用where()
Obs:對不起,我的名聲不允許我發表評論。
的var_dump($結果);模具; 您在模型代碼中添加了die功能是什么
function display_users($sdata){
$query=$this->db->get_where('tele_data',$sdata);
$result=$query->result_array();
// var_dump($result);die;
if($query->result_array()==TRUE){
foreach ($query->result_array() as $vals){
echo $vals['SD'];
echo $vals['EXT'];
echo $vals['F_NAME'];
echo $vals['M_NAME'];
echo $vals['L_NAME'];
echo $vals['FACTORY'];
echo $vals['DEPT'];
echo $vals['COMPANY_NAME'];
echo $vals['DESIGNATION'];
}
return $query->result_array();
} else {
return FALSE;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.