2

这是我的桌子:

类别:

{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>

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

添加到条件一 iftitle = $keywordcategory=$keyword2

在这个 MVC 中是否可能?

4

4 回答 4

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

于 2013-05-20T09:47:11.243 回答
1

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

$this->db->select('*'); 
 $this->db->from('document');
 $this->db->like('name', $keyword1);   
 $this->db->like('category', $keyword2);       
 return $this->db->get()->result();
于 2013-05-20T09:56:00.933 回答
0

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

于 2013-05-20T09:48:30.137 回答
0

是的,这在 Codeigniter 中是可能的,您应该通过发布的上述解决方案让它工作。

不过没问题。尝试按照此步骤操作,如果您发现任何问题,请告诉我。

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();
}

希望这对您有所帮助。

最好的问候,泽山。

于 2013-11-09T09:41:21.570 回答