codeigniter中的搜索框提供空白数据
Posted
技术标签:
【中文标题】codeigniter中的搜索框提供空白数据【英文标题】:searchbox in codeigniter giving blank data 【发布时间】:2021-11-01 19:07:18 【问题描述】:我在codeigniter中有一个简单的搜索框,控制器如下:
function searchtrack()
$this->load->model('excel_import_model');
if(isset($_POST['submittrack']))
$awb=$this->input->post('awb');
$data['slt']= $this->excel_import_model->searchtrack($awb);
$this->load->view("searchtrack",$data);
模型如下:
public function searchtrack($awbno)
$this->db->select('*');
$this->db->where("awb", $awbno);
$this->db->from('consignments');
$query = $this->db->get();
$result = $query->result();
return $result;
最后是显示视图:
<?php
foreach($slt as $val) echo $val->id;
?>
但是这没有给我任何值,帖子输入被传递给控制器和数据库列,一切都很好,谁能告诉我这里有什么问题提前谢谢
【问题讨论】:
很高兴看到新用户开始学习社区指南。你的问题表述得很完美。查看您的代码,它确实应该返回正确的数据。但是,请尝试再次检查所有变量名称。此外,您将数据推送到名为 $data 的变量中,该变量是一个数组,但尚未声明。尝试在您的视图中使用 var_dump($slt) 并查看返回的内容。之后,尝试 log_message('error', $result->countAllResults()) 在你的模型中查看查询是否返回任何结果。 我的错,我现在看到您正在使用 $this->db 查询样式。在这种情况下,请尝试使用 log_message('error', $this->db->count_all_results() ) 来获取更多信息。 【参考方案1】:在您的模型中,将“where”替换为“like”。 “Where”查找特定数据,“like”查找相似数据。
public function searchtrack($awbno)
$this->db->select('*');
$this->db->like("awb", $awbno, 'both');
$this->db->from('consignments');
$query = $this->db->get();
$result = $query->result();
return $result;
为了控制通配符 (%) 在“like”方法中的位置,使用了第三个参数。
$this->db->like('awb', $awbno, 'before'); // Produces: WHERE `title` LIKE '%match' ESCAPE '!'
$this->db->like('awb', $awbno, 'after'); // Produces: WHERE `title` LIKE 'match%' ESCAPE '!'
$this->db->like('awb', $awbno, 'none'); // Produces: WHERE `title` LIKE 'match' ESCAPE '!'
$this->db->like('awb', $awbno, 'both'); // Produces: WHERE `title` LIKE '%match%' ESCAPE '!'
【讨论】:
也许你可以添加一些关于第三个参数的解释?顺便说一句,答案很好。以上是关于codeigniter中的搜索框提供空白数据的主要内容,如果未能解决你的问题,请参考以下文章