Hello stackoverflow社区。 我想根据文章标题进行自动搜索,以显示有关它的最新消息。这些新闻可以在一个或几个表中,我们不知道使用。这是我的代码:
$search = 'any article title';
$Linkearray = array('title' => $search);
$Linkearray2 = array('text' => $search);
$this->db->or_like($Linkearray);
$this->db->or_like($Linkearray2);
$this->db->from('table1', 'table2');
$query = $this->db->get();
然后我尝试在下一个代码的页面上显示结果:
foreach ($query->result_array() as $row):
echo $row['title'];
endforeach;
问题是,它只显示来自table1的搜索结果。 如果我将一行代码重写为:
$this->db->from('table1, table2');
我收到错误1052.如果有人知道如何解决它,请分享:) 提前谢谢!
答案 0 :(得分:2)
而且,这是解决方案:
$search = 'some word';
$Linkearray = array('table1.title' => $search,'table2.text' => $search);
$Linkearray2 = array('table2.title' => $search,'table2.text' => $search);
$this->db->or_like($Linkearray);
$this->db->or_like($Linkearray2);
$this->db->from('table1,table2');
$query = $this->db->get();
foreach ($query->result_array() as $row):
echo $row['title'];
endforeach;
这样 - 您将避免1052错误,脚本将从两个表返回数据。在这种情况下生成的查询是:SELECT * FROM(table1
,table2
)WHERE table1
。title
LIKE'%strokes%'或table2
。{{ 1}} LIKE'%stroke%'或text
。table2
LIKE'%stroke%'或title
。table2
LIKE'%strokes%'但是,它会返回一些重复的结果...更好的查询,或结果的PHP操作......以获得所需的输出。
答案 1 :(得分:-1)
你能用php函数来组合输出吗? 类似......
array_merge($ this-> db-> from('table1'),$ this-> db-> from(table2))