Extra Form

                                    {@
                                    $oDB = &DB::getInstance();
                                    $module_info = $oModuleModel->getModuleInfoByMid($val2['url']);
                                    $query = $oDB->_query("
                                    SELECT COUNT(*) 
                                    FROM xe_documents
                                    WHERE module_srl = $module_info->module_srl
                                    AND regdate < (SELECT concat(curdate()+0, '235959'))
                                    AND regdate > (SELECT concat(date_add(curdate(), interval -1 DAY)+0, '000000'));
                                    ");
                                    $result = $oDB->_fetch($query);
                                    }

 

레이아웃에서 메뉴를 출력할 때 새글 개수를 카운트해서 출력해주려고 작성한 소스입니다.

어디가 문제인지 모르겠지만 정상적으로 출력되지 않습니다....

만약 소스가 문제가 없다면 {$result} 그대로 출력해주면 안 되는 건지요...?

도움 부탁드립니다 ㅠㅠ

  • ?
    저도 궁금하네요 ㅜ
  • ? profile
    아직 초보라 그런지 어렵네요....
    이거 해결하면 오늘 할일은 다 했네요 ㅠㅠ
  • profile

    &DB에서 &를 빼보세요. 전혀 필요하지도 않을뿐더러 템플릿에서는 오히려 에러의 원인이 됩니다.

     

    쿼리문을 따로 변수에 할당해서 찍어보세요. $module_info->module_srl이 제대로 들어갔는지 확인해야 합니다. 템플릿에서 사용하는 변수는 코어에서 엉뚱하게 바꿔버리기도 하거든요.

     

    여전히 안된다면 $query와 $result를 각각 var_dump로 찍어보세요. {var_dump($query, $result)} 둘다 뭔가 내용이 들어가 있어야 합니다.

     

    모든 디버깅은 각 단계에서 사용하는 변수에 제대로 값이 들어가 있는지 찍어보는 것에서 시작됩니다.

  • profile profile
    정상적으로 데이터 처리되는 것을 확인하였습니다. 기진곰님이 말씀하신대로 var_dump 함수를 이용해서 확인해보니 제가 생각했던 대로 나옵니다.

    object(stdClass)#1947 (1) {
    ["COUNT(*)"]=>
    int(1)

    다만 위와 같이 표현되어 있는데 어떻게 해야 1이라는 값을 출력할 수 있을까요?
  • profile profile

    SELECT COUNT(*) AS count 라고 쓰시면 {$result->count}로 출력하실 수 있을 거예요.

  • profile profile
    감사합니다! 명성은 익히 들었는데 역시 경험자는 다른 거 같네요 ㅠㅠ

서버에 요청 중입니다. 잠시만 기다려 주십시오...