묻고답하기

php로 게시판을 만들고 있습니다.

 

bbs_list.php에 한 페이지 당 표시될 게시물 갯수($perpage)를 10으로 잡았습니다.

bbs_function.php는 목록 뿌리기, 페이지 계산 등을 담당하는 파일입니다.

 

그런데 게시판의 게시물이 10개만 되면 맨 첫번째 글만 출력됩니다.

예를 들어 아래와 같이 목록에 나옵니다.

해당 게시판의 데이터베이스입니다. 총 10개입니다.

 

 

 

그런데 글 한개만 더 써서 11개를 만들면 정상적으로 출력됩니다.

아래와 같이 출력됩니다.

 

 

 

 

 

 

11개일경우 해당 게시판 데이터베이스입니다.

 

 

 

bbs_list.php 소스입니다.

<?
/*--------------------------
 filename : list.php3
--------------------------*/
require "bbs_function.php";

$perpage = "10";  // 한페이지당 10개 뿌리기

if ($page == "") {
  $page = 1;
}

$tlpn = get_pagenum();

$result = arti_list($tlpn, $perpage);

echo ("
// 맨 윗줄의 번호, 제목 등을 표시하는 부분 (편의상 생략)
");

$i = 0;
while($list = mysql_fetch_array($result)) {

  echo "
echo ("
// 게시물 번호, 제목, 작성자 등을 반복적으로 출력하는 부분 (편의상 생략)
";
}

echo "<br><center><font size=\"1\">"; movepage ($page, 2); echo "</font></center>";
?>

 

 

bbs_function.php 소스입니다.

<?
/*--------------------------
 filename : function.php3
--------------------------*/
function arti_list($tlpn, $perpage) {
 include "account.php";

  global $board, $page; // 수정

  $result = lpp($tlpn, $perpage, $page); // 추가

return $result;
}

function get_pagenum() {
  global $board, $perpage;

 include "account.php";

  $result = mysql_query("SELECT COUNT(*) FROM $board",$dbconn);
  $tlpn[num] = mysql_result($result, 0, "COUNT(*)");

  if($tlpn[num] % $perpage) {
    $tlpn[page]= intval($tlpn[num] / $perpage) + 1;
  }
  else {
    $tlpn[page]= $tlpn[num] / $perpage;
  }

  return $tlpn;
}

function lpp($tlpn, $perpage, $page) {
  global $board;

 include "account.php";

  if(($tlpn[page] > $page) && ($page > 1)) {
    $lastpagelist = $tlpn[num] - (($page - 1) * $perpage);
 
    $result = mysql_query("SELECT * FROM $board WHERE
      idx <= $lastpagelist
      ORDER BY idx DESC LIMIT $perpage", $dbconn);
  }
 
  elseif ($tlpn[page] == $page) { // 맨 마지막 페이지라면..
    if ($tlpn[num] % $perpage) {
      $lastpagelist = $tlpn[num] % $perpage;
    }
    else {
      $lastpagelist = $page;
    }
 
    $result = mysql_query("SELECT * FROM $board
      WHERE idx <= $lastpagelist
      ORDER BY idx DESC", $dbconn);
  }
 
  elseif ($page == "1") { // 첫 페이지라면..
    $result = mysql_query("SELECT * FROM $board
    ORDER BY idx DESC LIMIT $perpage", $dbconn);
  }
 
  else {
    echo "잘못된 페이지";
    exit;
  }
  return $result;
 
}

function movepage($page, $numpage) {
  global $board, $tlpn;
 
  if ($page == 1) { // 맨 처음 페이지
 echo "<b>[Top]</b> ";
  }
  else {
    echo "<a href=\"bbs_list.php?board=$board&page=1\">[Top]</a> ";
  } // 맨 처음 페이지 끝
   
  $topnear = $page - $numpage;
  $lastnear = $page + $numpage;
 
  if ($topnear <= 1) {
    $pres = 1;
    if ($tlpn[page] <= ($numpage * 2 + 1)) {
      $nexs = $tlpn[page];
    }
    else {
      $nexs = $numpage * 2 + 1;
    }
  }
  elseif (($page == $tlpn[page]) && ($tlpn[page] <= ($numpage * 2))) {
    $pres = 1;
    $nexs = $tlpn[page];
  }
  elseif ($lastnear >= $tlpn[page]) {
    $pres = $tlpn[page] - ($numpage * 2);
    $nexs = $tlpn[page];
  }
  else {
    $pres = $topnear;
    $nexs = $lastnear;
  }
 
  // 이동할 페이지의 가장 처음이 1 페이지보다 클 경우 생략 기호 출력
  if ($pres > 1) {
    echo "<b> ... </b>";
  } 
 
  for($i=$pres; $i <= $nexs; $i++) { // 중간
    if ($i == $page) {
      echo "<b>[$i]</b> ";
    }
    else {
      echo "<a href=\"bbs_list.php?board=$board&page=$i\">[$i]</a> ";
    }
  } // 중간

  // 이동할 페이지의 가장 끝이 마지막 페이지보다 작을 경우 생략 기호 출력
  if ($nexs < $tlpn[page]) {
    echo "<b> ... </b>";
  } 
  
  if ($page == $tlpn[page]) { // 맨 끝 페이지
    echo "<b>[Last]</b> ";
  }
  else {
    echo "
  <a href=\"bbs_list.php?board=$board&page=$tlpn[page]\">[Last]</a> ";
  } // 맨 끝 페이지 완료
}
?>

 

 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
수이 DB접속 오류가 발생하였습니다. [2] 2009.08.14 by 수이
쥐엉 고수님들 도와주세요.ㅠㅠㅠㅠ [2] 2009.08.14 by 쥐엉
코코넛스 (왕초보) GD라이브러리와 XML 라이브러리에 관해 질문 드립니다. [2] 2009.08.14 by sol
aflatoxin 게시판 상단이 벌어지는 이유가 뭘까요? file  
VINA답답이 게시판의 이미지 경로가 저절로 게시판ID가 삽입 되어 그림이 깨지는 현상 file  
으아악. xeBanner 사이에 공간이 생기는 어디서 수정해야 하나요?? [5] file 2009.08.14 by 으아악.
겨레사랑 웹브라우저 마다 화면이 조금씩 짤리거나 좁아져요 (ie,구글크롬,넷스케이프) [4] file 2009.08.14 by 겨레사랑
넘버백 1.8M 이미지 링크시 문제가 생기네요. [7] 2009.08.14 by 백성찬
겨레사랑 인기글 전광판 위젯 부탁드려요 file  
바닐라맨 위젯 수정시에 박스에서 MORE버튼 클립아트?가 없어졌어요  
바닐라맨 더보기 이미지 [선택] 버튼을 누르면 [2] 2009.08.14 by 바닐라맨
불맨 [질문]설치할 때 첫 화면이 계속 깜박거립니다. [4] 2009.08.14 by 불맨
동아전과 시안(회사홈페이지용)을 구입할려고합니다. 코딩+시안을 사야하나요? [2] 2009.08.14 by 오리날까
김가몬 윈도우 프로그램으로 제로보드 로그인 모듈을 사용하고 싶습니다.  
플레시 게시판 읽기 화면에서 플레쉬가 뜨지 않는 현상에 대해..  
불도깨비 링크 아래줄을 지우고 싶은데...???? file  
데미안k 이미지 첨부시 자동으로 사이트 주소까지 입히는 애드온이 있나요?  
101 메뉴가 엉망으로 보입니다. [2] 2009.08.14 by 101
쏘프티 SVN 으로 여러개의 프로젝트 설치 방법 문의 (설치 오류) [5] 2009.08.14 by 미니미
뚱님*^^* 도와주세요..홈피 먹통 [2] 2009.08.14 by 뚱님*^^*