리스트에서 자기 글만 보이게 할 경우 페이징 관련 질문입니다. 정보
리스트에서 자기 글만 보이게 할 경우 페이징 관련 질문입니다.본문
list.skin.php에서 이렇게 수정하여
<?
for ($i=0; $i<count($list); $i++) {
$bg = $i%2 ? 0 : 1;
?>
<? if (($list[$i][wr_6] == $member[mb_nick]) or ($list[$i][wr_2] == $member[mb_nick])|| $is_admin){//관리자,자신의글 시작?>
관리자는 다 보고, 일반회원은 wr_2 와 wr_6에 자기별명이 있을 경우에만 리스트에서 보게끔 하려고 합니다.
리스트에서는 제대로 일단 보이는데
게시판 전체 글이 15개 이상이라서 페이지가 넘어가는데
자기글 볼수 있는 글은 예를 들어 2개임에도 불구하고, 밑에 페이지 보면 1,2 이렇게 숫자가 들어갑니다.(위에 이미지 처럼)
어떻게 해야 페이지 처리가 제대로 될까요?
자기가 볼수 있는 글이 15개 이상일때만 페이지 넘어가는 표시가 나와야 하는데 전체글 기준으로 나옵니다.
<?
for ($i=0; $i<count($list); $i++) {
$bg = $i%2 ? 0 : 1;
?>
<? if (($list[$i][wr_6] == $member[mb_nick]) or ($list[$i][wr_2] == $member[mb_nick])|| $is_admin){//관리자,자신의글 시작?>
관리자는 다 보고, 일반회원은 wr_2 와 wr_6에 자기별명이 있을 경우에만 리스트에서 보게끔 하려고 합니다.
리스트에서는 제대로 일단 보이는데
게시판 전체 글이 15개 이상이라서 페이지가 넘어가는데
자기글 볼수 있는 글은 예를 들어 2개임에도 불구하고, 밑에 페이지 보면 1,2 이렇게 숫자가 들어갑니다.(위에 이미지 처럼)
어떻게 해야 페이지 처리가 제대로 될까요?
자기가 볼수 있는 글이 15개 이상일때만 페이지 넘어가는 표시가 나와야 하는데 전체글 기준으로 나옵니다.
댓글 전체
스킨 자체에서 수정하는 것 보다
board.php 에서
특정 bo_table 일 경우 조건을 줘서 자르는 방식 추천합니다.
전체 게시물 카운트 하는 부분에서도 쿼리를 해줘야 합니다.
board.php 에서
특정 bo_table 일 경우 조건을 줘서 자르는 방식 추천합니다.
전체 게시물 카운트 하는 부분에서도 쿼리를 해줘야 합니다.
제가 초보라서 그런데 좀 자세히 좀 알려주세요
bbs/list.php 에보면,
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table ";
$row = sql_fetch($sql);
$min_spt = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
else
{
$sql_search = "";
$total_count = $board[bo_count_write];
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
total_count 계산이 틀리고 있으니, 아마 이부분을 요물딱 조물딱 잘 해야 할거 같습니다.
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table ";
$row = sql_fetch($sql);
$min_spt = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
else
{
$sql_search = "";
$total_count = $board[bo_count_write];
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
total_count 계산이 틀리고 있으니, 아마 이부분을 요물딱 조물딱 잘 해야 할거 같습니다.