본문 바로가기
PHP/게시판 만들기

페이지 수 출력하기

by ethanjoh 2008. 11. 15.

얼추 페이지 수 출력하기를 했으나 나미지 부분을 완성하는게 생각보다 복잡해서 모두 삭제를 하고
"PHP4 쇼핑몰 만들기"란 책에 나와 있는 루틴을 참고해서 수정을 했다.
(나중에 좀더 좋은 루틴이 생각나면 수정하기로 하고 일단은 패스~)

<list.php 상단부분>

<?
	// common functions to connect to DB
    	include 'db_connect.php';

	$page = $_GET[page];
    	$limit = 10;  

    	//get posts from DB except passwd, cotent fields
    	//we don't need passwd and content fields at this time, so select specific fields for query speed
    	$sql= "SELECT main_no, name, title, date, count FROM board ORDER BY main_no DESC";

    	//query and save the result
    	$result = mysql_query($sql);

	//get total number of data in the table	
	$total_article = mysql_num_rows($result);

	if(empty($page))
		$page = 1;
	
	//first number of article according to current page
	//if current page is 1, it doesn't need to seek data
	//if current page is 2, next article number will be 10	
	$start_no = ($page-1)*$limit;
	
	if($start_no > 1)
		mysql_data_seek($result, $start_no);

	$total_page = ceil(($total_article)/$limit);

?>

 

아래 부분은 지정된 갯수만큼 게시판에 글을 출력하고 빠져나오는 while() 구문이다.
한 페이지에 보여줄 글 갯수는 상단에서 $limit = 10; 으로 10개만 출력이 되도록 지정을 했다.

	$line = 0;

         //get data array from query result and show on the board
	while($row = mysql_fetch_array($result))
	{    
		$main_no = $row[main_no];

	     	echo "<tr><td align=\"center\">$row[main_no]</td>\n";
             	//read post
	     	echo "<td><a href=\"read.php?page=$page&main_no=$row[main_no]\">$row[title]</a></td>\n";
	     	echo "<td align=\"center\">$row[name]</td>\n";

	     	//change date format. 
             	$post_date = substr($row[date], 0, 11);
	     	echo "<td align=\"center\">$post_date</td>\n";
	     	echo "<td align=\"center\">$row[count]</td>\n";
		
		//if line number is the same as limitation number/page then exit while()
		if(++$line == $limit)
			break;
	}

 

 

아랫 부분은 페이지 수를 for()문을 돌려 출력하는 부분이다.
현재 페이지는 링크를 걸지 않고, 나머지 페이지 수에만 링크를 걸었다.

 

<!------------------------- page navigation ------------------------------------------>
<table cellspacing=0 border=0 width=80%>
<tr>
<td align="center"  bgcolor="#F0F0F0">
<? 
	//show page numbers
	for($i=1; $i <= $total_page; $i++) {
		if($i == $page)
			echo $i." ";
		else
			echo "<a href=\"list.php?page=".$i."\">[".$i."]</a> ";
	}
?>
</td>
</tr>
</table>

 

전체 소스는 아래에 링크를 걸었다.

 

'PHP > 게시판 만들기' 카테고리의 다른 글

답글 수정 및 삭제하기  (0) 2008.11.21
답변 쓰기 기능 작성 (중간 소스정리)  (3) 2008.11.20
조회수 올리기  (0) 2008.11.14
게시판 만들기 중간정리 (소스 첨부)  (0) 2008.11.14
글 삭제하기 작성  (0) 2008.11.14