繁体   English   中英

搜索之前从db中获取值

[英]Fetching the values from db before searching

在下面的代码中,当我执行它时。它显示了数据库中的所有值,而当我搜索它时正在搜索。但是我的预期结果是当我执行它时,它不应该显示数据库中的数据,而仅当我搜索它时,才应该显示数据库中的数据。结果。

控制器search1_site.php

<?php
class Search1_site extends ci_controller
{
    function index()
    {
        $data            = array();
        $keyword         = $this->input->post('keyword');
        $data['results'] = $this->search1_model->search($keyword);
        $this->load->view('result_view', $data);
    }
}
?>

模型search_model.php

<?php
class Search_model extends CI_Model
{
    function search($keyword)
    {
        $this->db->like('course_code', $keyword);
        $query = $this->db->get('coursemaster');
        return $query->result();
    }
}
?>

查看result_view.php

<form action="<?php echo site_url('search1_site/index');?>" method = "post">
<input type="text" name = "keyword" />
<input type="submit" id="opn" value = "Search"  />
</form>

<table>
<tr>
<th>course_code</th>
<th>course name</th>
</tr>
<?php
foreach ($results as $row) {
?>
<tr>
<td><?php echo $row->course_code;?></td>
<td><?php echo $row->course_name;?></td>
</tr>
<?php
}
?> 
</table>

在控制器中:

class Search1_site extends ci_controller
{
    function index()
    {
        $data            = array();
        $keyword         = $this->input->post('keyword');
        if($keyword!=""){
            $data['results'] = $this->search1_model->search($keyword);
        }
        $this->load->view('result_view', $data);
    }
}

鉴于:

<?php
if($results){
foreach ($results as $row) {
?>
<tr>
    <td><?php echo $row->course_code;?></td>
    <td><?php echo $row->course_name;?></td>
</tr>
<?php
} 
}else{
   //Display somthing
}
?> 

当您的页面加载关键字时,控制器中以下行中的关键字将变为空白,并且其查询中的所有记录都将作为%%进行搜索。

$keyword    =   $this->input->post('keyword');

首先检查$ keyword是否为空。 如果其不为空,则搜索数据。

做类似的事情:

if ( isset( $_POST['keyword'] ) ) { ... }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM