특정게시판의 글쓴 회원글수 표기하기 채택완료
헛둘헛둘
3년 전
조회 1,443
특정 게시판 가령 (포럼 게시판)에
회원들이 글쓴 개수를 리스트에 표기를 해주려고 하는데요
(포럼게시판이면 포럼게시판에다가 쓴 글 숫자 // 타 게시판에 글쓴건 제외)
ex. 제가 포럼게시판에 글을 10개 적었으면 10 이라는 숫자가 표기되도록
</p>
<p><?
$sql = " select count(*) as cnt from `g5_write_forum` where mb_id = '{$list['mb_id']}' ";
$row = sql_fetch($sql);
$count = $row['cnt'];
?></p>
<p>
찍어봐도 숫자가 계속 0으로만 나오는데 =$count?>
진짜 초보라 뭐가 잘못된건지 잘 모르겠습니다 ㅠ .ㅠ
혹시 좋은 지혜있으면 살짝 나눠주세요

댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
답변에 대한 댓글 6개
�
엑스엠엘
3년 전
�
헛둘헛둘
3년 전
감사합니다! ㅋㅋ;;; ㅠ.ㅠ $list[$i]['mb_id']였어요
엑스엠엘님도 감사드립니다!!!
엑스엠엘님도 감사드립니다!!!
�
배르만
3년 전
그리고 루프마다 매번 쿼리날리는것도
루프 밖에서 list 범위 mb_id 들만 IN 으로 쿼리할수 있도록 준비해서
한번의 쿼리로 처리하면 더 좋습니다.
루프 밖에서 list 범위 mb_id 들만 IN 으로 쿼리할수 있도록 준비해서
한번의 쿼리로 처리하면 더 좋습니다.
�
헛둘헛둘
3년 전
아 그 말씀은 게시판 list안에다가 하지말고
bbs list 같은곳에 쿼리를 짜고 불러와서 하라는 말씀이신지요~~
제가 초보라 말귀가 어두워서 ㅠ.ㅠ 한번에 잘 이해를 못합니다!
bbs list 같은곳에 쿼리를 짜고 불러와서 하라는 말씀이신지요~~
제가 초보라 말귀가 어두워서 ㅠ.ㅠ 한번에 잘 이해를 못합니다!
�
배르만
3년 전
대략 이런식으로요.
[code]
<?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']];
}
}
?>
[/code]
한페이지에 목록 500 개 설정한 경우라면 500번 실행될 쿼리 1번으로 줄겠죠.
단 이럴경우 mb_id 에 인덱스 까지 있어야 합니다.
인덱스 없으면 차라리 개별 쿼리가 낫고요
[code]
<?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']];
}
}
?>
[/code]
한페이지에 목록 500 개 설정한 경우라면 500번 실행될 쿼리 1번으로 줄겠죠.
단 이럴경우 mb_id 에 인덱스 까지 있어야 합니다.
인덱스 없으면 차라리 개별 쿼리가 낫고요
�
헛둘헛둘
3년 전
아하!! 감사합니다! 말씀하신건 대략적으로 이해가 갔어요!
좀보고 공부해봐야겠어요! 감사합니다!!!
좀보고 공부해봐야겠어요! 감사합니다!!!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
본문 내용 소스는 아마도 loop 안에 들어가야 해서
이것이 맞을 겁니다.