Codeigniter搜索查询,我想为我的搜索添加另一个条件

时间:2013-05-20 09:40:10

标签: php codeigniter

这是我的表:

类别:

{category_id , category }

文件:

{document_id, title, address, category}

我的控制器

Class Search Extends CI_Contrller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('mymodel');
    }

    function search_keyword()
    {
        $keyword    =   $this->input->post('keyword');
        $data['results']    =   $this->mymodel->search($keyword);
        $this->load->view('result_view',$data);
    }

}

我的模型

Class Mymodel Extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }

    function search($keyword)
    {
        $this->db->like('name',$keyword);
        $query  =   $this->db->get('document');
        return $query->result();
    }
} 

这是我的视图

<form action="<?php echo site_url('search/search_keyword');?>" method = "post">
<input type="text" name = "keyword" />
<input type="submit" value = "Search" />
</form>
<table>
?>
foreach($results as $row){
<?php
    <tr>
        <td><?php echo $row->title?></td>
        <td><?php echo $row->category?></td>
    </tr>
<?php   
}
?>
</table>

根据上面显示的控制器和模型,我只能检索一个关键字,这是我的文档标题,但现在我想:

如果title = $keywordcategory=$keyword2加入条件一。

是否可以在此MVC中使用?

4 个答案:

答案 0 :(得分:3)

试试吧。

  Class Mymodel Extends CI_Model
 {
  function __construct()
  {
    parent::__construct();
    }

  function search($keyword)
  {
    $this->db->where('name',$keyword);
    $this->db->where('category',$keyword2);
    $query  =   $this->db->get('document');
    return $query->result();
  }

}

或者您也可以使用条件。

 $this->db->like('name',$keyword);
 $this->db->like('category',$keyword2);

在控制器中定义 $ keyword2

答案 1 :(得分:1)

只需使用一个额外的声明,但为此你需要一个新的参数$ keyword2.pass从控制器到模型。

$this->db->select('*'); 
 $this->db->from('document');
 $this->db->like('name', $keyword1);   
 $this->db->like('category', $keyword2);       
 return $this->db->get()->result();

答案 2 :(得分:0)

只需在模型中添加另一种方法,即在类别字段中查询关键字2 在您的控制器中,只需将返回值分配给另一个数组项,如“results2”。 希望这能给你一个想法。

答案 3 :(得分:0)

是的,可以在Codeigniter&amp;你应该通过上面发布的解决方案来实现它。

没问题。试着按照这个步骤&amp;如果您发现任何问题,请告诉我。

1) Add input text field named 'keyword2' to your view
2) Read 'keyword2' value in Controller like 'keyword' 
**$keyword = $this->input->post('keyword');**

将两个关键字都传递给模型

3) $data['results'] = $this->mymodel->search($keyword,$keyword2);

模型中的搜索功能应如下所示:

function search($keyword,$keyword2)
{
    $this->db->like('name',$keyword);
    $this->db->like('name',$keyword2);
    $query  =   $this->db->get('document');
    return $query->result();
}

希望这可以帮到你。

最诚挚的问候, Zeeshan。