在自动完成搜索查询中使用SQL UNION和Codeigniter/PHP
我正在尝试在Codeigniter中开发一个自动完成函数,有人能告诉我这个查询是否有任何问题吗?这对我来说似乎是合理的,但我没有得到任何输出 例如,如果有人在搜索框中键入'Ma',我想使用以下查询在自动完成搜索查询中使用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
$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())
并查看是否获得了所需的数据。