특정게시판의 글쓴 회원글수 표기하기

특정게시판의 글쓴 회원글수 표기하기

QA

특정게시판의 글쓴 회원글수 표기하기

본문

특정 게시판 가령 (포럼 게시판)에

회원들이 글쓴 개수를 리스트에 표기를 해주려고 하는데요

(포럼게시판이면 포럼게시판에다가 쓴 글 숫자 // 타 게시판에 글쓴건 제외)

ex. 제가 포럼게시판에 글을 10개 적었으면 10 이라는 숫자가 표기되도록

 


<?
$sql = " select count(*) as cnt from `g5_write_forum` where mb_id = '{$list['mb_id']}' ";
$row = sql_fetch($sql);
$count = $row['cnt'];
?>

 

찍어봐도 숫자가 계속 0으로만 나오는데 <?=$count?>

진짜 초보라 뭐가 잘못된건지 잘 모르겠습니다 ㅠ .ㅠ

 

혹시 좋은 지혜있으면 살짝 나눠주세요

 

3690604473_1664686556.4132.jpg

 

 

 

 

이 질문에 댓글 쓰기 :

답변 1

$list['mb_id']

가 아닌

 

$list[$i]['mb_id']

가 아닐까 추측해봅니다.

아 그 말씀은 게시판 list안에다가 하지말고

bbs list 같은곳에 쿼리를 짜고 불러와서 하라는 말씀이신지요~~

제가 초보라 말귀가 어두워서 ㅠ.ㅠ 한번에 잘 이해를 못합니다!

대략 이런식으로요.


<?php

// $write_count_map = [];
// $list 에서 mb_id, write count 만 따로 추출해 $write_count_map 에 추가
// select mb_id, count(1) cnt from ... where mb_id IN ('member1', 'member2', ...) group by mb_id
// $write_count_map = ['member1' => 0, 'member2' => 2, ...];

for ($i = 0; $i < count($list); $i++) {
    // $sql = " select count(*) as cnt from ... {$list[$i]['mb_id']} ";
    // $row = sql_fetch($sql);
    // $count = $row['cnt'];

    $count = 0;
    if (empty($write_count_map[$list[$i]['mb_id']]) === false) {
        $count = $write_count_map[$list[$i]['mb_id']];
    }
}
?>


한페이지에 목록 500 개 설정한 경우라면 500번 실행될 쿼리 1번으로 줄겠죠.
단 이럴경우 mb_id 에 인덱스 까지 있어야 합니다.
인덱스 없으면 차라리 개별 쿼리가 낫고요

답변을 작성하시기 전에 로그인 해주세요.
전체 128
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT