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这只是为了测试。