Php 如何通过在codeigniter中选择搜索类别从数据库中搜索记录?

Php 如何通过在codeigniter中选择搜索类别从数据库中搜索记录?,php,mysql,codeigniter,codeigniter-2,Php,Mysql,Codeigniter,Codeigniter 2,我的索引页中有记录列表。现在,我想通过选择类别(例如电话号码、电子邮件等)来搜索特定记录。我如何才能做到这一点?救命 以下是我的看法: <?php $attributes = array('class'=>'searchform', 'id'=>'searchform'); echo form_open('crud/searchCrud', $attributes);?> <div class="formele

我的索引页中有记录列表。现在,我想通过选择类别(例如电话号码、电子邮件等)来搜索特定记录。我如何才能做到这一点?救命

以下是我的看法:

    <?php
        $attributes = array('class'=>'searchform', 'id'=>'searchform');
        echo form_open('crud/searchCrud', $attributes);?>
        <div class="formelements">
            <div class="formlbl">
                Search:
            </div>
            <div class="forminput">
                <input type="text" name="searchon" id ="searchon"/>
            </div>
            <div class="searchtyp">
                <select class="searchby" name="searchby">
                    <option value="0">---Select--- </option>
                    <option value="name">Name</option>
                    <option value="email">Email</option>
                    <option value="phone">Phone</option>
                </select>
            </div>
            <div class="searchinput">
                <input type="submit" name="search" value="Search" />
            </div>
        </div>          
        <?php echo form_close();?>
这是我的模型:

    public function searchCrud()
    {
        $searchby = $this->input->post('searchby');
        $searchon = $this->input->post('searchon');

        $this->db->get('test')->result();
        return $this->db->like($searchon, $searchby);
    }
1) 您不应直接访问
模型中的
POST
数据
2) 始终将它们收集到
控制器中
,然后将其传递给
型号

3) 还应始终尝试创建您的
模型
功能,
可重用

稍微修改一下你的代码。试着运行它


控制器:

public function searchCrud()
{
    $searchby = $this->input->post('searchby');
    $searchon = $this->input->post('searchon');

    $records =  $this->crud_mdl->searchCrud($searchby, $searchon);
    foreach ($records as $record) 
    {
        echo $record->name;
    }
}
public function searchCrud($searchby, $searchon)
{
    $this->db->like($searchon, $searchby);
    $query = $this->db->get('test');

    if($query->num_rows() > 0)
         return $query->result();
    else
         return FALSE;
}

型号:

public function searchCrud()
{
    $searchby = $this->input->post('searchby');
    $searchon = $this->input->post('searchon');

    $records =  $this->crud_mdl->searchCrud($searchby, $searchon);
    foreach ($records as $record) 
    {
        echo $record->name;
    }
}
public function searchCrud($searchby, $searchon)
{
    $this->db->like($searchon, $searchby);
    $query = $this->db->get('test');

    if($query->num_rows() > 0)
         return $query->result();
    else
         return FALSE;
}

您是否需要与搜索完全匹配,并且有必要首先检查该记录是否存在,否则您将得到db错误您不应该在controller@Dan这只是为了测试。