簡體   English   中英

無法使用codeigniter從數據庫檢索數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM