최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

<html>
<head>
<meta charset="utf-8" />
<title>자유게시판</title>
</head>

<body>
<h3><p align="center">자유게시판</h3>
<table width=800 align=center>
	<tr bgcolor=cyan>
		<td align=center width=80>번호</td>
		<td align=center width=420>제목</td>
		<td align=center width=100>작성자</td>
		<td align=center width=130>작성일</td>
		<td align=center width=70>조회수</td>
	</tr>

<?
	include "db_connect.php";
	
	//테이블 존재 검사
	$sql = "show tables like 'freeboard'";
	$result = mysql_query($sql, $connect);
	$row = mysql_num_rows($result);
	if($row == 0) die ("table이 없습니다.");

	//
	$page = $_GET['page'];

	$num_records_per_page = 3; //한 페이지에 표시될 레코드 수

	$sql = "select count(*) from freeboard"; //전체 레코드 수 11
	$result = (mysql_query($sql, $connect));
	$num_records = mysql_result($result, 0, 0);

	$num_pages = ceil($num_records/$num_records_per_page); //전체 페이지 수 11/3 = 4페이지

	$page = min(max(1, $page), $num_pages); //현재페이지의 첫번째 레코드 계산
	/*
	같은표현
	$page = max( 1, min($page, $numpages) );

	if(page < 1) $page = 1;
	if(page > $num_pages) $page = $num_pages;
	*/
	$start = ($page - 1)*$num_records_per_page; //출력을 시작할 첫번째 레코드 위치
	

	//출력
	$sql = "select * from freeboard order by num desc";
	$sql.= " limit $start, $num_records_per_page";
	$result = mysql_query($sql, $connect);

	while( $row = mysql_fetch_array($result) )
	{
		echo "<tr>
				<td align=center>$row[num]</td>
				<td><a href='view.php?num=$row[num]&page=$page'>$row[title]</a></td>
				<td align=center>$row[name]</td>
				<td align=center>$row[register_day]</td>
				<td align=center>$row[hits]</td>
			 </tr>";
	}
	mysql_close($connect);
?>

<tr><td colspan=5 height=20></td></tr>

<tr>
	<td colspan=5 align=center>
<?
	//한 화면에 표시할 페이지 번호 링크의 시작과 끝 번호를 계산
	$num_links_per_view = 3; //한 화면에 표시될 페이지 번호의 수
	
	//링크 블럭 [1]=1,2,3($num_links_per_view) [2]=4,5,6... 블럭값이 1이면 1~3은 같은 범위안에 들게한다.
	$block = ceil($page / $num_links_per_view);

	//첫번째 링크번호
	$first_link = ($block-1) * $num_links_per_view + 1;
	
	//마지막 링크번호 : min함수를 쓰는 이유는 마지막 페이지가 $num_pages일 경우 이 값으로 표기해야 되기때문.
	$last_link = min($first_link + $num_links_per_view -1, $num_pages);

	//[이전]링크
	if($first_link != 1)
		//이전블록의 맨 우측
		echo "<a href='freeboard_04.php?page=" .($first_link - 1)."'>[<이전]</a> ";
		//echo "<a href='freeboard_04.php?page=" .($page - $num_links_per_view)."'>[<이전]</a> ";
	
	//페이지 번호들 출력
	for($i = $first_link; $i <= $last_link; $i++)
	{
		if($page == $i)
			echo "<b>[$i]</b> ";
		else
			echo "<a href='freeboard_04.php?page=$i'>[$i]</a> ";
	}

	//[다음]
	if($last_link != $num_pages)
		//다음블록의 맨 첫번째
		echo "<a href='freeboard_04.php?page=" .($first_link + $num_links_per_view). "'>[다음>]</a> ";
		//echo "<a href='freeboard_04.php?page=" .($page + $num_links_per_view). "'>[다음>]</a> ";
?>
	</td>
</tr>


<!-- 글쓰기 -->
<tr>
	<td colspan=5 align=right>
		<input type=button value="글쓰기" onclick="location.href='write_form.php?page=<?=$page?>'">
	</td>
</tr>

</table>
</body>
</html>
댓글