Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

안녕하세요 2023년까지 하루하고도 30분정도 남았는데 타운 회원여러분 모두 새해 복 많이받으세요

 

이벤트성으로 한해 글을 제일 많이 작성한 회원, 댓글을 제일 많이 작성한 회원, 추천을 제일 많이 받은 회원등 여러가지로 순위를 매겨서 회원분들께 공유해드리고 싶은데 혹시 관련된 모듈이나, 애드온 혹은 위젯이 있을까요?

  • ?

    https://xetown.com/tips/1386849

    위의 팁을 활용하면 될거 같네요.

  • profile

    둥~ (대충 넷플릭스)

    기왕이면 동메달까지 시상합시다.

     

    - 부담이 있을 수 있으니 위젯을 제작해서 쿼리 자체를 회원들에 허용하는 것은 비추이고요. 관리자만 본다든가 해서 1회성으로 결과만 도출한 뒤 회원들에게 공지하는 방식이 좋을 듯합니다.

    - 피추천자(문서 부문) Top3는 쿼리가 테이블 join만 나와도 저한텐 복잡해서ㅜ 아래의 소스가 맞을지는 잘 모르겠습니다. 결과값으로 나오는 $top3_voted를 잘 디버깅해보시고 아니다 싶으면 고쳐쓰시든 폐기하시든 하세요~

     

    1. 작성자 Top3

    $oDB = DB::getInstance();
    $query = 'SELECT member_srl, COUNT(member_srl) AS articles
        FROM documents
        WHERE member_srl > 0 AND regdate >= 20220101000000
        GROUP BY member_srl
        ORDER BY articles DESC
        LIMIT 3';
    $stmt = $oDB->prepare($query);
    $stmt->execute();
    $top3_authors = $stmt->fetchAll();

     

    2. 댓글러 Top3

    $oDB = DB::getInstance();
    $query = 'SELECT member_srl, COUNT(member_srl) AS replies
        FROM comments
        WHERE member_srl > 0 AND regdate >= 20220101000000
        GROUP BY member_srl
        ORDER BY replies DESC
        LIMIT 3';
    $stmt = $oDB->prepare($query);
    $stmt->execute();
    $top3_commentator = $stmt->fetchAll();

     

    3. 피추천자(문서 부문) Top3

    $oDB = DB::getInstance();
    $query = 'SELECT documents.member_srl, COUNT(documents.member_srl) AS articles
        FROM documents
        LEFT JOIN document_voted_log ON documents.document_srl = document_voted_log.document_srl
        WHERE documents.member_srl > 0 AND document_voted_log.regdate >= 20220101000000 AND document_voted_log.point > 0
        GROUP BY member_srl
        ORDER BY articles DESC
        LIMIT 3';
    $stmt = $oDB->prepare($query);
    $stmt->execute();
    $top3_voted = $stmt->fetchAll();

     

  • profile ?
    타운와서 윤삼님 도움만 받아가는거 같습니다
    항상 건강하시고 새해 복 많이받으세요
    감사합니다.