在自动完成搜索查询

问题描述:

我想开发一个笨自动完成功能使用SQL UNION与笨/ PHP,有人可以让我知道是否有与此查询任何问题吗?这似乎是合理的给我,但我没有得到任何输出...在自动完成搜索查询

例如,如果在“马”有人类型的搜索框,我想用下面的查询..

$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 

任何意见将不胜感激。

+2

我猜这是使用AJAX来完成 - 使用Firebug瓦特/ Firefox或谷歌浏览器类似的东西来调试请求。使用Firebug,你可以查看,看看该请求是否成功与否,通常在响应部分,它会告诉你任何错误笨输出。 – Matthew 2011-04-20 02:57:39

+0

除非它是一个错字,行'$项= $这个 - >输入 - >后(“术语”)=“马”,'返回'致命错误:在写上下文[无法使用方法的返回值。 。],至少对我来说。 – Ross 2011-04-21 08:51:26

+0

也做了'的print_r($查询 - >结果());',看看你得到你所期待的数据。 – Ross 2011-04-21 08:52:33

如果你正在使用的查询,然后我想应该是这样

$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%''); 
+0

感谢josnidhin,实现不需要.... $查询= $这个 - > DB-> get()方法; – 2011-07-08 02:53:06