게시판 페이징 수정2...

게시판 페이징 수정2...

QA

게시판 페이징 수정2...

본문

어제 https://sir.kr/qa/409365?vpage=1#answer_409378 게시물을 작성하여 엑스엠엘님께 도움을 받았습니다. 감사합니다.

하지만 아직 적용을 못하고 있고 이전 글이 설명이 부족하다고 생각되어 다시 질문글을 올립니다.

 

---------------------------이전 게시물 내용-------------------------------

이렇게 회원들마다 본인들이 작성한 게시물을 모아두는 스킨으로 제작했습니다.

그런데 페이징이 전체 게시물 숫자로 적용이 되는 것같습니다..

페이징 넘버를 전체 게시물이 아닌 게시물을 작성한 회원들의 숫자로 적용할 수 있을까요?

------------------------------------------------------------------------------

현재 게시물을 올린 회원은 4명이고 게시물의 총 개수는 13개입니다.

목록개수는 pc/모바일 모두 20개로 설정하였는데 페이지넘버는 17번까지 출력이 되고 있습니다.

257개로 설정하면 페이징이 1로 바뀌면서 '등로된 회원이 없습니다.'라는 문구가 페이징 위쪽에 출력되어 나옵니다.

3556076816_1618986933.493.png

목표는 게시물을 올린 회원을 기준으로 페이징을 적용하고 싶습니다.

(목록개수 10개 지정 -> 게시물 작성 회원 10명 이상일때 페이징)

이 질문에 댓글 쓰기 :

답변 4

내용을 이해하기가 많이 어려운 것 같습니다.

 

그누보드에서 기본적인 전체 게시글 숫자 구하는 쿼리 관련 소스는 다음과 같습니다.


$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

 

전체 카운트를 게시글 숫자가 아닌, 회원수로 한다면.. 쿼리를 변경해서 $total_count 변수에 넣어주면 될 듯 합니다.

 


$sql = " SELECT COUNT(DISTINCT `mb_id`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

 

/skin/board/[사용스킨명]/list.skin.php 에 적용을 해야 될 것 같지만..

해당 스킨이 어떤분이 어떻게 만든 것인지에 대한 부분은 알 수 없기 때문에 확실치는 않습니다.

list.row.php라는 파일에는

$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";

$row = sql_fetch($sql);

$total_count = $row['cnt'];

 

$rows = (G5_IS_MOBILE) ? $board['bo_mobile_page_rows'] : $board['bo_page_rows'];

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산

$page = ($page > 0) ? $page : 1; // 페이지가 없으면 첫 페이지 (1 페이지)

$from_record = ($page - 1) * $rows; // 시작 열을 구함

 

$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";

$result = sql_query($sql);

이렇게 정리되어 있습니다.

 

아래는 list.skin.php 파일입니다.

<div class="list-page text-center">

  <ul class="pagination en no-margin">

    <?php if($prev_part_href) { ?>

      <li><a href="<?php echo $prev_part_href;?>">이전검색</a></li>

    <?php } ?>

    <php echo apms_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, './board.php?bo_table='.$bo_table.$qstr.'&page=');?>

    <?php if($next_part_href) { ?>

       <li><a href="<?php echo $next_part_href;?>">다음검색</a></li>

    <?php } ?>

  </ul>

</div>

 

$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

->

$sql = " select count(distinct mb_id) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";

    <php echo apms_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, './board.php?bo_table='.$bo_table.$qstr.'&page=');?>
===
$sql_search가 $qstr에 들어 가는지 살펴 보세요.

마르스컴퍼니님 답변 감사합니다.
하지만 mb_id값을 넣어도 동작은 되지않았습니다...
그래도 시간내주셔서 답변 주심에 감사합니다.

엑스엠엘님
common.php파일을 봐야 될까요?
common에서qstr에 $sql_search는 없었습니다..

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

회원로그인

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