大家好,我需要一点帮助。
我在这里想做的是让搜索引擎搜索我的帖子
我的数据库中的哪个位置
title assignation price
发布时的分配可以有不同的值,例如:
buying
selling
renting
for renting
etc.
在我看来,我有输入字段来搜索帖子标题和 4 个复选框,当我选中第一个正在购买的复选框时,我会从有分配购买的帖子中获得所有结果。但是当我检查并查看买卖帖子时,我没有得到任何结果。
当我检查销售时,也会发生这种情况,我也得到了销售结果,这没关系,但当我检查更多类似购买、销售、租赁时,我没有得到任何结果。
我该如何解决这个问题。 这是我的模型函数:
if($this->input->get('keyword')){
$this->db->like('posts.title',$keyword);
}
if($this->input->get('assignation_buying')){
$this->db->like('assignation',$assignation_buying);
}
if($this->input->get('assignation_selling')){
$this->db->or_like('assignation',$assignation_selling);
}
if($this->input->get('assignation_renting')){
$this->db->or_like('assignation',$assignation_renting);
}
if($this->input->get('assignation_for_renting')){
$this->db->or_like('assignation',$assignation_for_renting);
}
}
或者举个例子,如果我选择出售和购买,则仅选择第二个出售 在这些情况下,这是正确的用法吗?
谢谢,任何帮助将不胜感激。
最佳答案
我认为您没有正确发送 View 中的数据。请发表您的观点,以检查您发送到 PHP 的内容。无论如何,您应该检查正在对数据库执行的 SQL。
在模型的方法中,写入:
echo $this->db->last_query();
这将输出您发送的 SQL,并且可能会为您指出解决方案。
提供更多信息,我们将能够为您提供更多帮助,;)
更新
我发现了错误,:D,您正在使用变量,但您想在字段中查找字符串。对于空值,SQL 会理解您想要没有任何内容的行。
您只需将代码更改为:
if($this->input->get('keyword')){
$this->db->like('posts.title',$keyword);
if($this->input->get('assignation_buying')){
$this->db->or_like('assignation','buying');
}
if($this->input->get('assignation_selling')){
$this->db->or_like('assignation','selling');
}
if($this->input->get('assignation_renting')){
$this->db->or_like('assignation','renting');
}
if($this->input->get('assignation_for_renting')){
$this->db->or_like('assignation','for_renting');
}
}
关于php - Codeigniter搜索引擎错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848184/