2013-05-23 4 views
1

안녕하세요 아래 그 배열의 범위에있는 테이블에서 모든 데이터를 얻으려면 : CakePHP의 WHERE 절에 : 배열 문자열 convertion에

$authors = $_POST['authors']; 
$articles= $_POST['articles']; 

PHP

에 AJAX에서 보낸 // 데이터를

검색어 :

$this->Mymodel->find('all', array('conditions' => array('Mymodel.name' => array($authors ,$articles)),'order'=>'Mymodel.id DESC')); 

오류 :

다음 CakePHP의 쿼리는 나에게 다음과 같은 오류를주고있다
Notice (8): Array to string conversion [CORE/Cake/Model/Datasource/DboSource.php, line 2591] 
Database Error 

Error: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "," LINE 1: ...Mymodel" WHERE "Mymodel"."name" IN (Array, Array) ...^

내가 뭘 잘못하고 있니? 나는 내가 왜 $authors = array('sss','rrr');으로 arry를 가졌는지 알기 때문에 그것이 내 경우에는 왜 그렇게되지 않을까? 미리 감사드립니다.

답변

2

귀하의 $authors$articles 변수가 이미 배열이라고 생각합니다. 코드에서 오류가있어

$this->Mymodel->find('all', array(
    'conditions' => array(
     'Mymodel.name' => array_merge($authors, $articles) 
    ), 
    'order'=>'Mymodel.id DESC') 
); 
+1

는'OR' 배열은 두 번 같은 키를 가질 수 없습니다, 그래서 조건뿐만 아니라 배열에 싸여되어야한다 - => 배열 (배열 ('Mymodel'배열 ('OR ' ('Mymodel.name'=> $ articles)))' – thaJeztah

+0

답변 주셔서 감사합니다. 그러나 이것은 내가 원하는 것이 아니며 'OR'절을 원하지 않습니다. 다음과 같이 : $ article = array ('Jhon', 'Bill'); $ autors = array ('article2', 'article3'); $ this-> Mymodel-> find ('all', array ('조건'=> 배열 ('Mymodel.name'=> 배열 ("Jhon", "Bill", "article2", "article3")) order '=>'Mymodel.id DESC '))); $ this-> Mymodel-> find ('all', array ('조건'=> 배열 ('Mymodel.name'=> 배열 ($ articles, $ autors)), 'order'=> 'Mymodel.id DESC'))); 어떻게 작동시킬 수 있습니까? – OussamaLord

+0

@thaJeztah, lol 내가 생각했던 것. 하하 –