특정게시판에 한 회원이 n개까지만 게시물을 등록하게하고 싶어 여기저기 검색해보면서 해보는 중입니다..

 

select count(member_srl) from table group by member_srl having count(*) < 3;

DB 자체에서 check문으로 막아보려고 해보는 중인데... check 조건을 어떻게 넣어야할지도 막막하더라구요...ㅠ

 

check문이나.. 라이믹스에서는 어떤 방법이 있을지 여쭤볼 수 있을까요..?

  • Lv19
    게시판에 회원이 작성한 게시물 수를 체크하고 싶으시다는 거죠?

    $act에 따라 변수 정보가 다르긴 할 텐데요.
    일단 모듈 번호는 $module_info->module_srl에 담겨 있다 가정하고,
    언급하신 회원은 로그인한 회원 당사자로서 $logged_info->member_srl로 식별할 수 있다면,

    $obj = new stdClass();
    $obj->member_srl = $logged_info->member_srl;
    $member_document_count = getModel('document')->getDocumentCount($module_info->module_srl, $obj);

    이런 식으로 하면 $member_document_count에 로그인한 회원 당사자의 게시물 작성수가 나올 것 같습니다.
  • Lv19 ?
    감사합니다! 주신 답변대로 활용해보겠습니다!
  • Lv5
    $oDB = DB::getInstance();
    $stmt = $oDB->prepare("SELECT COUNT(*) as count FROM  documents WHERE member_srl = ?");
    $stmt->execute( [ $logged_info->member_srl ]);
    $totalCount = $stmt->fetch();
    echo $totalCount->count;

     

    GROUP BY나 HAVING 까지는 필요없을 것 같고.. 별다른 조건이 없다면, 이런 식으로 작성하면 됩니다. 게시판별로 다르게 계산하려면, WHERE 절에 module_srl에 대한 조건을 추가하시면 됩니다. 

  • Lv5 ?
    감사합니다! 주신 답변대로 활용해보겠습니다!