티스토리 뷰
<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>
'■ 백엔드 ■ > PHP' 카테고리의 다른 글
SQL 인젝션 공격에 대한 필수 인코딩 - mysql_real_escape_string() (1) | 2015.01.22 |
---|---|
session 변조방지를 위해 비교할 값은 무조건 IP로 (0) | 2015.01.22 |
간단 중복아이디체크 (0) | 2014.09.19 |
setcookie() - 쿠키 생성, 사용, 삭제 (0) | 2014.05.07 |
file_exists (0) | 2014.04.30 |
댓글