2010-02-02 2 views
1
$select->where('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?)',$searching_string); 
    $select->order('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?) DESC',$searching); 

얻기 오류 :젠드 프레임 워크 zend_db_select의 ORDER

메시지는 : SQLSTATE [HY093] : 잘못된 매개 변수 번호 : 매개 변수이 문제는 $ Select 포함> 주문 라인에 보인다

구속되지 않았다.

결과와 관련 있습니다. 젠드 프레임 워크에서 어떻게 보이겠습니까?

그리고 검색하는 데 문제가있는 것 같습니다. 어떤 단어는 검색하고 그렇지 않은 단어도 있습니다. 왜 이런 식으로 작동합니까? : Z

감사

답변

4

나는 부분의 경기가 주문 절에서와 필드 목록으로 이동되도록 당신이 당신의 선택 문을 변경할 필요가 있다고 생각합니다.

예를 들어

대신

SELECT * 
FROM mytable 
WHERE match(text,phone,phone2) AGAINST ('something') 
ORDER BY match(text,phone,phone2) AGAINST ('something'); 

당신은 그래서

SELECT mytable.*, match(text,phone,phone2) AGAINST ('something') AS relevanceScore 
FROM mytable 
WHERE match(text,phone,phone2) AGAINST ('something') 
ORDER BY relevanceScore DESC; 

있을 것입니다, 더 관련하여 귀하의 경우 귀하의 뭔가 보일 것 선택 개 같은

$select->from('tableName',array('*','relevenceScore'=>$db->quoteInto('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?)',$searching_string)); 
$select->where('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?)',$searching_string); 
$select->order('relevanceScore DESC'); 
+0

감사합니다 ! 매력처럼 작동합니다! 나를 구해 줬어! +를 추가했습니다. :) – Somebody