在自动完成搜索查询中使用SQL UNION和Codeigniter/PHP

在自动完成搜索查询中使用SQL UNION和Codeigniter/PHP,php,sql,codeigniter,union,jquery-ui-autocomplete,Php,Sql,Codeigniter,Union,Jquery Ui Autocomplete,我正在尝试在Codeigniter中开发一个自动完成函数,有人能告诉我这个查询是否有任何问题吗?这对我来说似乎是合理的,但我没有得到任何输出 例如,如果有人在搜索框中键入'Ma',我想使用以下查询 $term=$this->input->post('term')='Ma'; $this->db->query( 'SELECT subject FROM items WHERE subjec

我正在尝试在Codeigniter中开发一个自动完成函数,有人能告诉我这个查询是否有任何问题吗?这对我来说似乎是合理的,但我没有得到任何输出

例如,如果有人在搜索框中键入'Ma',我想使用以下查询

$term=$this->input->post('term')='Ma'; 

$this->db->query(  'SELECT subject
                    FROM items
                    WHERE subject LIKE 'Ma%'
                  UNION ALL
                    SELECT first_name
                    FROM accounts
                    WHERE first_name LIKE 'Ma%'
                  UNION ALL
                    SELECT description
                    FROM items
                    WHERE description LIKE 'Ma%'');
$query=$this->db->get();

$items = array();

foreach ($query->result() as $row)
array_push($items, $row->subject);

$companies = array_slice($items, 0, 5);
echo json_encode($items);
结果应该如下所示:

Marios Shoes1
Mario Shoes9
marklast
Mark
marktwook

任何建议都将不胜感激。

如果您使用的是查询,那么我认为应该这样做

$query = $this->db->query(  'SELECT subject
                    FROM items
                    WHERE subject LIKE 'Ma%'
                  UNION ALL
                    SELECT first_name
                    FROM accounts
                    WHERE first_name LIKE 'Ma%'
                  UNION ALL
                    SELECT description
                    FROM items
                    WHERE description LIKE 'Ma%'');

我猜这是在使用ajax——使用firebug w/firefox或类似于google chrome的东西来调试请求。使用firebug,您可以查看请求,以查看请求是否成功,通常在响应部分,它会显示任何错误代码点火器输出。除非是错误,否则行
$term=$this->input->post('term')='Ma'
返回一个
致命错误:至少对我来说,不能在[..]
的写上下文中使用方法返回值。还要执行
打印($query->result())
并查看是否获得了所需的数据。