我想制作一个简单的搜索引擎,从数据库中查找数据并将其显示出来,但我不明白为什么要执行查询,这是我的代码:
模型页面
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');
}
}
当我从搜索表单中执行搜索时,我会得到无结果 ,有人能帮我吗,因为我已经尝试过很多次了,但我不是一个专业的网络开发人员,我只是在学习,感谢所有的贡献者
型号:
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->db->last_query((调试查询
希望这对你有帮助。
$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');
试试这个。。
希望能有所帮助。。
更改此
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){