【问题标题】:How to search record from db by selecting search category in codeigniter?如何通过在codeigniter中选择搜索类别从数据库中搜索记录?
【发布时间】:2014-05-31 10:42:01
【问题描述】:

我的索引页中有记录列表。现在我想通过选择类别(例如电话号码、电子邮件等)来搜索特定记录/记录。我该怎么做?帮助..

这是我的看法:

    <?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()
    {
        $records =  $this->crud_mdl->searchCrud();
        foreach ($records as $record) {
            echo $record->name;
        }
    }

这是我的模型:

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

        $this->db->get('test')->result();
        return $this->db->like($searchon, $searchby);
    }

【问题讨论】:

  • 您是否需要与该搜索完全匹配,并且必须首先检查该记录是否存在,否则您将收到数据库错误
  • 你不应该在控制器中回显数据
  • @Dan 这只是为了测试目的。

标签: php mysql codeigniter codeigniter-2


【解决方案1】:

1) 切勿直接在 Model 中访问 POST 数据。
2) 始终在 Controller 中收集它们,然后将其传递给 Model
3) 也总是尝试创建你的 Model 函数,re-usable

稍微修改了您的代码。尝试运行它。


控制器:

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

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多