我想创建一个简单的搜索引擎,从数据库中查找数据并显示它们,但我无法确定为什么在这里执行查询是我的代码:
class Reference_model extends CI_Model{
function search($match){
$this->db->where('sReference', $match);
$this->db->like('nReference', $match);
$this->db->or_like('sSearch', $match);
$this->db->from('treference', $match);
$query = $this->db->get();
if($query->num_rows > 0){
$output = '<ul>';
foreach ($query->result() as $rows){
$output .= '<li>'.$rows->nReference.'</li>';
}
$output .='</ul>';
}else{
return "<p>No Results!</p>"; //No Results!
}
return $output;
}
}
class References extends CI_Controller {
function index()
{
$q = $this->input->post('q');
$this->load->model('Reference_model');
$results['result'] = $this->Reference_model->search($q);
$this->load->view('constants/header');
$this->load->view('references',$results);
$this->load->view('constants/footer');
}
}
当我从搜索表单中执行搜索时,我得到了没有结果!,有人可以帮助我,因为我已经尝试多次没有,而且我不是专业人士webdeveloper我刚刚学习,感谢所有贡献者
答案 0 :(得分:1)
$this->db->like('sReference', $match);
$this->db->like('nReference', $match);
$this->db->or_like('sSearch', $match);
和这部分
$this->db->from('treference', $match);
将其更改为
$this->db->from('treference');
试试这个..
希望它有所帮助..答案 1 :(得分:1)
型号:
class Reference_model extends CI_Model
{
function search($match)
{
$this->db->select('*'); //this line
$this->db->where('sReference', $match);
$this->db->like('nReference', $match);
$this->db->or_like('sSearch', $match);
$this->db->from('treference'); //this line
$query = $this->db->get();
if($query->num_rows > 0){
$output = '<ul>';
foreach ($query->result() as $rows){
$output .= '<li>'.$rows->nReference.'</li>';
}
$output .='</ul>';
}else{
return "<p>No Results!</p>"; //No Results!
}
return $output;
}
}
尝试使用 echo / print_r 或 echo $ this-&gt; db-&gt; last_query();
调试查询希望这会对你有所帮助。
答案 2 :(得分:1)
更改此
if($query->num_rows > 0){
到
if($query->num_rows() > 0){
num_rows
应该是一个功能。
如果还是不行。
尝试转储正在生成的查询并将其发布到此处。
var_dump($this->db->last_query()); die('x'); if($query->num_rows > 0){