2014-09-26 118 views
0

我对这个查询有问题,whis是错的? 但我没有任何错误:查询或Zend框架

public function find($name, $cod) 
    { 
     $select = $this->getSelect(); 
     $select->from('table', 'id'); 
     $select->where("nome LIKE '%.$name.%' OR codiceArticolo '%.$cod.%'"); 

     $rows = $select->query()->fetchAll(); 
     return $rows[0]; 
    } 
+0

你确定你需要的'.'在这一点吗? ''%。$ name。%'' - 它似乎在改变您的搜索条件? – Fluffeh 2014-09-26 09:52:03

+0

尝试'echo $ select;'并直接运行查询并检查是否存在任何错误 – 2014-09-26 09:52:24

+0

“我遇到问题”是为了扩展,不过我认为您在'codiceArticolo'和''%之间缺少运算符'LIKE'。 $ cod。%'',你滥用连接运算符'.',尝试'$ select-> where(“nome LIKE'%{$ name}%'或者codiceArticolo LIKE'%{$ cod}%'”) ;'。 – 2014-09-26 09:53:36

回答

1

我敢肯定你是使用字符串连接在你的代码句号更改您的搜索:

我相信二者中的任何下面将解决问题:

​​

public function find($name, $cod) 
{ 
    $select = $this->getSelect(); 
    $select->from('table', 'id'); 
    $select->where("nome LIKE '%$name%' OR codiceArticolo '%$cod%'"); 

    $rows = $select->query()->fetchAll(); 
    return $rows[0]; 
} 
0

你错了位置:

$select->where("nome LIKE '%.$name.%' OR codiceArticolo '%.$cod.%'"); 
          ^ ^

试试这个:

$select->where("nome LIKE '%".$name."%' OR codiceArticolo '%.$cod.%'"); 

$select->where("nome LIKE '%$name%' OR codiceArticolo '%.$cod.%'");