2014-09-26 121 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.%'");