2014-09-26 3 views
0

У меня проблема с этим запросом, это неправильно? Но у меня нет каких-либо ошибок:Query OR Zend Framework

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

+0

Попробуйте 'echo $ select;' и запустите запрос напрямую и проверьте наличие каких-либо ошибок. –

+0

«У меня проблема» - это широкий, тем не менее, я думаю, что вам не хватает оператора 'LIKE' между' codiceArticolo' и ''%. $ cod.% '', и вы неправильно используете оператор конкатенации' .', try '$ select-> где (" nome LIKE'% {$ name}% 'ИЛИ codiceArticolo LIKE'% {$ cod}% '") ; '. –

ответ

1

Я уверен, что вы меняете свой поиск, используя строку Concat полной остановки в вашем коде:

Я считаю, что одно из двух следующих разрешим вопрос:

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]; 
} 

или

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.%'");