-
-
// 데이터베이스 연결 설정 - $link = mysql_connect("localhost", "mysql_user" , "mysql_passWord")
- 또는 die("연결할 수 없습니다: " . mysql_error())
- // 현재 페이지 번호 가져오기
- if( isset($_GET['page']) ){
- $page = intval( $_GET['page'] );
- }
- else{
- $page = 1;
- }
- //페이지당 페이지 수
- $PageSize = 10;
- //총 데이터 양 가져오기
- $sql = "테이블에서 양으로 count(*) 선택";
- $result = mysql_query($sql);
- $row = mysql_fetch_row($ result);
- $amount = $row['amount'];
- // 총 페이지 수 계산
- if( $amount ){
- if( $amount < $page_size ){ $page_count = 1; } //총 데이터 양이 $PageSize보다 작으면 페이지가 하나만 있는 것입니다
- if( $amount % $page_size ){ //나머지 가져오기 전체 데이터량을 페이지 수로 나눈 값
- $page_count = (int)($amount / $page_size) 1; //나머지가 있으면 전체 데이터량을 페이지 수로 나눈 값과 같습니다. 페이지 수, 반올림하고 1을 더함
- }else{
- $page_count = $amount / $page_size; //나머지가 없으면 페이지 수는 총 데이터 양을 페이지 수로 나눈 값과 같습니다. 페이지 수
- }
- }
- else{
- $page_count = 0;
- }
- // 페이지 넘기기 링크
- $page_string = '';
- if( $page == 1 ){
- $page_string .= '첫 번째 페이지|이전 페이지|';
- }
- else{
- $page_string .= ' 첫 번째 페이지|이전 페이지|';
- }
- if( ($page == $page_count) || ($page_count == 0) ){
- $page_string .= '다음 페이지|마지막 페이지';
- }
- else{
- $page_string .= '다음 페이지< /a>|마지막 페이지';
- }
- // 데이터를 가져와서 2차원 배열 형식으로 결과를 반환합니다
- if( $amount ){
- $sql = "select * from table order by id desc Limit "($page-1). *$page_size .", $page_size";
- $result = mysql_query($ sql);
while ( $row = mysql_fetch_row($result) ){
- $ rowset[] = $row;
- }
- }else{
- $rowset = array();
- }
- // 결과를 표시하는 코드가 포함되어 있지 않으므로 다음과 같습니다. 논의 범위를 벗어나는 한, 얻은 2차원 배열을 사용하여 쉽게 결과를 표시할 수 있습니다
- ?>
-
코드 복사
4.OO 스타일 코드
데이터베이스 연결은 pear db 클래스를 사용하여 처리됩니다.
두 가지 사항을 설명하세요.
이 클래스는 데이터 처리만 하고 표시는 담당하지 않습니다. 데이터 처리와 결과 표시를 하나의 클래스에 넣는 것이 좀 꺼려지는 것 같아서요.
표시할 때 상황과 요구 사항이 변경될 수 있습니다. 더 좋은 방법은 Pager 클래스를 기반으로 자체 하위 클래스를 상속하여 페이지를 표시하는 것입니다. 사용자 페이지 매김 목록:
- Class MemberPager는 Pager를 확장합니다
- {
- 함수 showMemberList()
- {
- global $db;
$data = $this->getPageData()
- // 결과를 표시하는 코드
- // ... ..
- }
- }
- /// 호출
- if ( isset($_GET['page']) )
- {
- $page = (int)$_GET[ ' 페이지'];
- }
- else
- {
- $page = 1;
- }
- $sql = "ID별로 회원 순서에서 * 선택"; = array(
- "sql" => $sql,
- "PageSize" => 10,
- "CurrentPageID" => $page
- )
- if ( isset($ _GET ['numItems']) )
- {
- $pager_option['numItems'] = (int)$_GET['numItems'];
- }
- $pager = @new MemberPager($pager_option ) ;
- $pager->showMemberList();
- ?>
-
-
-
- 코드 복사
설명: 다른 데이터베이스 호환성, 다른 데이터베이스에서 결과를 가로채는 쓰기 방법이 다릅니다.
mysql: 테이블 제한 오프셋, 행에서 * 선택
pgsql: 테이블 제한 m 오프셋 n에서 * 선택
...
따라서 클래스에서 결과를 얻으려면 pear db 클래스의limitQuery 메소드를 사용해야 합니다.
|