Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用like%%search通过包含多个值的数组查找字段_Php_Cakephp_Find - Fatal编程技术网

Php 如何使用like%%search通过包含多个值的数组查找字段

Php 如何使用like%%search通过包含多个值的数组查找字段,php,cakephp,find,Php,Cakephp,Find,我正在尝试通过像%%search这样的搜索获得多个与这些ID(1、2、3)匹配的字段。 我已经试着让它工作了两个小时,但它没有工作,尽管它看起来很简单 $ids = array ('1','2','3'); $result = $this -> Model -> find ('all', array( 'conditions' => array( 'Model.category LIKE' => '%'.$ids.'%') )); 我需要别人的帮助 见 只是一

我正在尝试通过像%%search这样的搜索获得多个与这些ID(1、2、3)匹配的字段。 我已经试着让它工作了两个小时,但它没有工作,尽管它看起来很简单

$ids = array ('1','2','3');

$result = $this -> Model -> find ('all', array(
    'conditions' => array( 'Model.category LIKE' => '%'.$ids.'%')
));
我需要别人的帮助


只是一个猜测,但不妨试试

'Model.category LIKE' => "%$ids%"

我建议您单独构建“条件”数组。例如:

$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
    $conditions['OR'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}

$result = $this->Model->find('all', array('conditions'=>$conditions));

我还没有测试过,但这应该可以

$ids = array(1, 2, 3);

$result = $this->Model->find('all', array(
    'conditions' => array('Model.category'=>$ids ')
        ));

很抱歉迟了回复,谢谢你回答我的问题。只要我读了你的答案,尼克·辛格发布的答案是最有帮助的。然而,我想做的是搜索。所以我像贝娄一样改进了答案

$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
    $conditions['AND'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}

$result = $this->Model->find('all', array('conditions'=>$conditions));

再次感谢你的帮助

可能的重复项不会像搜索一样执行
$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
    $conditions['AND'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}

$result = $this->Model->find('all', array('conditions'=>$conditions));