在下面的代码中,当我执行它时。它显示了数据库中的所有值,当我搜索它时它正在搜索。但是我的预期结果是当我执行它时不应该显示数据库中的数据并且只在我搜索它时显示应该显示结果。
Controller 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>
最佳答案
在 Controller 中:
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);
}
}
在 View 中:
<?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
}
?>
关于php - 在搜索之前从数据库中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18399051/