未执行Codeigniter Mysql查询

时间:2015-08-07 22:17:18

标签: php mysql codeigniter

我想创建一个简单的搜索引擎,从数据库中查找数据并显示它们,但我无法确定为什么在这里执行查询是我的代码:

模型页面

class Reference_model extends CI_Model{


        function search($match){
            $this->db->where('sReference', $match);
            $this->db->like('nReference', $match);
            $this->db->or_like('sSearch', $match);
            $this->db->from('treference', $match);
            $query = $this->db->get();

                if($query->num_rows > 0){
                    $output = '<ul>';
                    foreach ($query->result() as $rows){
                        $output .= '<li>'.$rows->nReference.'</li>';
                    }
                    $output .='</ul>';
                }else{
                    return "<p>No Results!</p>"; //No Results!
                }
                return $output;
    }
}

控制器页面

class References extends CI_Controller {


    function index()
    {   
        $q = $this->input->post('q');
        $this->load->model('Reference_model');
        $results['result'] = $this->Reference_model->search($q);


        $this->load->view('constants/header');
        $this->load->view('references',$results);
        $this->load->view('constants/footer');

}
}

当我从搜索表单中执行搜索时,我得到了没有结果!,有人可以帮助我,因为我已经尝试多次没有,而且我不是专业人士webdeveloper我刚刚学习,感谢所有贡献者

3 个答案:

答案 0 :(得分:1)

$this->db->like('sReference', $match);
$this->db->like('nReference', $match);
$this->db->or_like('sSearch', $match);

和这部分

$this->db->from('treference', $match);

将其更改为

$this->db->from('treference');

试试这个..

希望它有所帮助..

答案 1 :(得分:1)

型号:

    class Reference_model extends CI_Model
    {


        function search($match)
        {
            $this->db->select('*');   //this line
            $this->db->where('sReference', $match);
            $this->db->like('nReference', $match);
            $this->db->or_like('sSearch', $match);
            $this->db->from('treference');  //this line
            $query = $this->db->get();

                if($query->num_rows > 0){
                    $output = '<ul>';
                    foreach ($query->result() as $rows){
                        $output .= '<li>'.$rows->nReference.'</li>';
                    }
                    $output .='</ul>';
                }else{
                    return "<p>No Results!</p>"; //No Results!
                }
                return $output;
        }
    }

尝试使用 echo / print_r echo $ this-&gt; db-&gt; last_query();

调试查询

希望这会对你有所帮助。

答案 2 :(得分:1)

更改此

if($query->num_rows > 0){

if($query->num_rows() > 0){

num_rows应该是一个功能。 如果还是不行。 尝试转储正在生成的查询并将其发布到此处。

var_dump($this->db->last_query()); die('x'); if($query->num_rows > 0){