好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

一个简单php和mysql数据分页程序 - php分页

一个简单php和mysql数据分页程序

<?php  // Adam's Custom PHP MySQL Pagination Tutorial and Script   // You have to put your mysql connection data and alter the SQL queries(both queries)   // This script is in tutorial form and is accompanied by the following video:   mysql_connect( "DB_Host_Here" , "DB_Username_Here" , "DB_Password_Here" )  or   die  (mysql_error());  mysql_select_db( "DB_Name_Here" )  or   die  (mysql_error());  //////////////  QUERY THE MEMBER DATA INITIALLY LIKE YOU NORMALLY WOULD   $sql  = mysql_query( "SELECT id, firstname, country FROM myTable ORDER BY id ASC" );  //////////////////////////////////// Adam's Pagination Logic ////////////////////////////////////////////////////////////////////////   $nr  = mysql_num_rows( $sql );  // Get total of Num rows from the database query   if  (isset( $_GET [ 'pn' ])) {  // Get pn from URL vars if it is present        $pn  = preg_replace( '#[^0-9]#i' ,  '' ,  $_GET [ 'pn' ]);  // filter everything but numbers for security(new)        //$pn = ereg_replace("[^0-9]", "", $_GET['pn']); // filter everything but numbers for security(deprecated)   }  else  {  // If the pn URL variable is not present force it to be value of page number 1        $pn  = 1;  }   //This is where we set how many database items to show on each page    $itemsPerPage  = 10;   // Get the value of the last page in the pagination result set   $lastPage  =  ceil ( $nr  /  $itemsPerPage );  // Be sure URL variable $pn(page number) is no lower than page 1 and no higher than $lastpage   if  ( $pn  < 1) {  // If it is less than 1        $pn  = 1;  // force if to be 1   }  else   if  ( $pn  >  $lastPage ) {  // if it is greater than $lastpage        $pn  =  $lastPage ;  // force it to be $lastpage's value   }   // This creates the numbers to click in between the next and back buttons   // This section is explained well in the video that accompanies this script   $centerPages  =  "" ;  $sub1  =  $pn  - 1;  $sub2  =  $pn  - 2;  $add1  =  $pn  + 1;  $add2  =  $pn  + 2;  if  ( $pn  == 1) {       $centerPages  .=  '&nbsp; <span class="pagNumActive">'  .  $pn  .  '</span> &nbsp;' ;       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $add1  .  '">'  .  $add1  .  '</a> &nbsp;' ;  }  else   if  ( $pn  ==  $lastPage ) {       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $sub1  .  '">'  .  $sub1  .  '</a> &nbsp;' ;       $centerPages  .=  '&nbsp; <span class="pagNumActive">'  .  $pn  .  '</span> &nbsp;' ;  }  else   if  ( $pn  > 2 &&  $pn  < ( $lastPage  - 1)) {       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $sub2  .  '">'  .  $sub2  .  '</a> &nbsp;' ;       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $sub1  .  '">'  .  $sub1  .  '</a> &nbsp;' ;       $centerPages  .=  '&nbsp; <span class="pagNumActive">'  .  $pn  .  '</span> &nbsp;' ;       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $add1  .  '">'  .  $add1  .  '</a> &nbsp;' ;       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $add2  .  '">'  .  $add2  .  '</a> &nbsp;' ;  }  else   if  ( $pn  > 1 &&  $pn  <  $lastPage ) {       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $sub1  .  '">'  .  $sub1  .  '</a> &nbsp;' ;       $centerPages  .=  '&nbsp; <span class="pagNumActive">'  .  $pn  .  '</span> &nbsp;' ;       $centerPages  .=  '&nbsp; <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $add1  .  '">'  .  $add1  .  '</a> &nbsp;' ;  }  // This line sets the "LIMIT" range... the 2 values we place to choose a range of rows from database in our query   $limit  =  'LIMIT '  .( $pn  - 1) *  $itemsPerPage  . ','  . $itemsPerPage ;   // Now we are going to run the same query as above but this time add $limit onto the end of the SQL syntax   // $sql2 is what we will use to fuel our while loop statement below   $sql2  = mysql_query( "SELECT id, firstname, country FROM myTable ORDER BY id ASC $limit" );   //////////////////////////////// END Adam's Pagination Logic ////////////////////////////////////////////////////////////////////////////////   ///////////////////////////////////// Adam's Pagination Display Setup /////////////////////////////////////////////////////////////////////   $paginationDisplay  =  "" ;  // Initialize the pagination output variable   // This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display   if  ( $lastPage  !=  "1" ){       // This shows the user what page they are on, and the total number of pages        $paginationDisplay  .=  'Page <strong>'  .  $pn  .  '</strong> of '  .  $lastPage .  '&nbsp;  &nbsp;  &nbsp; ' ;       // If we are not on page 1 we can place the Back button        if  ( $pn  != 1) {           $previous  =  $pn  - 1;           $paginationDisplay  .=   '&nbsp;  <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $previous  .  '"> Back</a> ' ;      }        // Lay in the clickable numbers display here between the Back and Next links        $paginationDisplay  .=  '<span class="paginationNumbers">'  .  $centerPages  .  '</span>' ;       // If we are not on the very last page we can place the Next button        if  ( $pn  !=  $lastPage ) {           $nextPage  =  $pn  + 1;           $paginationDisplay  .=   '&nbsp;  <a href="'  .  $_SERVER [ 'PHP_SELF' ] .  '?pn='  .  $nextPage  .  '"> Next</a> ' ;      }   }  ///////////////////////////////////// END Adam's Pagination Display Setup ///////////////////////////////////////////////////////////////////////////   // Build the Output Section Here   $outputList  =  '' ;  while ( $row  = mysql_fetch_array( $sql2 )){       $id  =  $row [ "id" ];       $firstname  =  $row [ "firstname" ];       $country  =  $row [ "country" ];       $outputList  .=  '<h1>'  .  $firstname  .  '</h1><h2>'  .  $country  .  ' </h2><hr />' ;        }  // close while loop   ?>  <html>  <head>  <title>Adam's Pagination</title>  <style type= "text/css" >  <!--  .pagNumActive {      color: #000;      border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;  }  .paginationNumbers a:link {      color: #000;      text-decoration: none;      border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;  }  .paginationNumbers a:visited {      color: #000;      text-decoration: none;      border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;  }  .paginationNumbers a:hover {      color: #000;      text-decoration: none;      border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;  }  .paginationNumbers a:active {      color: #000;      text-decoration: none;      border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;  }  -->  </style>  </head>  <body>     <div style= "margin-left:64px; margin-right:64px;" >       <h2>Total Items: <?php  echo   $nr ; ?></h2>     </div>         <div style= "margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;" ><?php  echo   $paginationDisplay ; ?></div>        <div style= "margin-left:64px; margin-right:64px;" ><?php print  "$outputList" ; ?></div>        <div style= "margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;" ><?php  echo   $paginationDisplay ; ?></div>  </body>  </html> 

查看更多关于一个简单php和mysql数据分页程序 - php分页的详细内容...

  阅读:70次