2011-01-28 2 views
0

DB 테이블에서 게시물을 선택하고 getParam()을 사용하여 URL에서 ID를 가져옵니다. 내가하고 싶은 일은 url에 id가 지정된 게시물이 없을 때 오류 메시지를 표시하는 것입니다. Zend_Db_Select로 임의의 행을 선택하는 경우 Chech

는 내가 가지고있는 쿼리입니다 :

$db = Zend_Registry::get('db'); 
$select = $db->select(); 
$select->from(array('p' => 'posts')) 
     ->join(array('u' => 'users'), 'u.user_id = p.post_userid') 
     ->where('p.post_id = ?', $postid); 
$post = $db->fetchRow($select); 

문제는, 내가 echo count($post)을 할 때 1를 보여줍니다 ID가 잘못이며, ID가 유효한 경우는 1 개 이상을 표시하고 행 때에도 실제로 선택되었습니다.

제 질문은 지정된 ID로 선택한 행의 수를 어떻게 확인해야합니까? ($ postid!).

제안 사항? ... {경우 ($ 게시물) 그리고 이것은이다 :

답변

1

$post = $db->fetchRow($select);을 변경해야한다고 생각 count가 1을 반환하는 이유는 배열이 아닌 다른 것에 대해 count를 호출하면 1을 반환합니다 (null 변수 제외). 이것은 null을 반환하는 Db_Table의 fetchRow 메서드와 다릅니다.

1

나는 어떤 결과가이 같은 결과에 직접 테스트 할 수 있도록 그리고 FetchRow는, false를 돌려줍니다이없는 경우 $posts = $db->fetchAll($select);

+0

그러나 나는 한 줄 이상을 기대하지 않습니다. 그렇게한다면, foreach ($ 행으로 $ posts)와 같은 일을해야 할 것입니다. 어떤 종류의 일은 복잡합니다. 다른 방법이 없습니까? – networkprofile

+1

@Sled. $ db-> fetchRow ($ select); 행이 발견되지 않았던 경우는 false를 돌려줍니다. 따라서 거짓인지 여부 만 확인할 수 있습니다. – Marcin

관련 문제