얼추 페이지 수 출력하기를 했으나 나미지 부분을 완성하는게 생각보다 복잡해서 모두 삭제를 하고
"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 |