묻고답하기
php 게시판에서 참 희안한 오류가 발생됩니다!
2010.05.28 21:22
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> ";
} // 맨 끝 페이지 완료
}
?>
댓글 0
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
다크서클30년 | 여러분들이 도와주신 덕분에.. | |
yegam | 메인에 공지사항 제목만 추출하기 | |
쿠니쿠니 | 로그인시 자동으로 메일보내기 | |
둑밥 | 코어 업그레이드 순서 | |
우진♡아빠 | xe글등록시 다음 블로그에도 같이 올릴려면..? | |
기멍태 | get으로 값 넘기는 것에 대해 여쭤봅니다. | |
Wolfen Player! | 게시판 스킨 변경이 안 됩나다 [1] | 2010.05.28 by 기멍태 |
동길아 | 목록아래 또 목록 만들수 없나요? | |
달빛미르히 |
여백문제요..
![]() | |
지지리궁상님 | 제로보드 DQ 포토갤러리 오류인데요???? | |
이태배기 | 로그인이 안되요 | |
CDengS | 2차메뉴 ccs관련 자료 없나요? ㅠㅠ;; [1] | 2010.05.28 by 날개249 |
boring | 제로보드 스킨을 xe에 사용할수있나요??? [2] | 2010.05.28 by NineTail |
아키테스 | php 게시판에서 참 희안한 오류가 발생됩니다! | |
향유고래 | jQuery 의 $() 사용불가 상황에서 ready() 메소드 사용 질문 [1] | 2010.05.28 by SMaker |
FRAGE |
메뉴 출력 위젯 세로 tree 위치 조정하는 방법 질문드립니다.
[2]
![]() | 2010.05.28 by mindpainter |
빠다보이 |
회원가입 폼 수정
[2]
![]() | 2010.05.29 by 이용국 프로덕션 |
calko | 플래너 data migration | |
나다나다 |
로그인창 문의 스샷첨부 고수님 좀 도와주세요
[1]
![]() | 2010.05.29 by mindpainter |
천파양쇄 | 로그인창(?) 수정. [1] | 2010.05.29 by mindpainter |