<? php /* * 文件名:datagridclass.php * 作者:感染源 * 时间:2007-07-25 * 描述:分页类 */ error_reporting ( 0 ); class datagridclass{ private $conn ; private $result ; private $resultArr = array (); public $beginrecord = 0 ; public $totalrecords = 0 ; public $totalpages = 0 ; public $currentpage = 0 ; public $maxline = 0 ; public $maxlist = 0 ; function __construct( $pHost , $pName , $pPwd , $pDbName , $pMaxLine = 15 , $pMaxList = 8 ) { $this -> conn = mysql_connect ( $pHost , $pName , $pPwd ) or die ( ' DataBase connecting false... ' ); mysql_select_db ( $pDbName , $this -> conn) or die ( ' Choice database false... ' ); $this -> maxline = $pMaxLine ; $this -> maxlist = $pMaxList ; } // function __construct(); function __set( $property_name , $value ) { $this -> $property_name = $value ; } // function __set(); function __destruct() { mysql_free_result ( $this -> result); mysql_close ( $this -> conn); } // function __destruct(); function readdata( $pSql ) { $this -> result = mysql_query ( $pSql , $this -> conn) or die ( ' Select false... ' ); $this -> totalrecords = mysql_num_rows ( $this -> result); if ( ! $this -> totalrecords) { return false ; } else { $this -> totalpages = ceil ( $this -> totalrecords / $this -> maxline); $pSql .= ' LIMIT ' . $this -> beginrecord . ' , ' . $this -> maxline; $this -> result = mysql_query ( $pSql , $this -> conn) or die ( ' Select false... ' ); $i = 0 ; while ( $row = mysql_fetch_array ( $this -> result)) { $this -> resultArr[ $i ] = $row ; $i ++ ; } // while } // if return $this -> resultArr; } // function readdata(); function navigate() { if ( $this -> totalrecords) { $this -> currentpage = ( $this -> beginrecord / $this -> maxline) + 1 ; $firstpage = 0 ; $prevpage = $this -> beginrecord - $this -> maxline; $nextpage = $this -> beginrecord + $this -> maxline; $lastpage = ( $this -> totalpages - 1 ) * $this -> maxline; if ( $this -> beginrecord == 0 ) { echo ' [首页] [上一页] ' ; } else { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$firstpage'>[首页]</a> " ; echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$prevpage'>[上一页]</a> " ; } if ( $this -> currentpage <= $this -> maxlist) { for ( $i = 1 ; $i <= $this -> maxlist; $i ++ ) { $pagerecord = ( $i - 1 ) * $this -> maxline; if ( $this -> currentpage == $i ) { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$pagerecord'>[$i]</a> " ; } else { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$pagerecord'>$i</a> " ; } // if } // for } elseif ( $this -> currentpage > ( $this -> totalpages - $this -> maxlist)) { for ( $i = ( $this -> maxlist); $i > 0 ; $i -- ) { $pagerecord = ( $this -> totalpages - $i ) * $this -> maxline; if ( $this -> currentpage == ( $this -> totalpages - $i + 1 )) { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$pagerecord'>[ " . ( $this -> totalpages - $i + 1 ) . " ]</a> " ; } else { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$pagerecord'> " . ( $this -> totalpages - $i + 1 ) . " </a> " ; } // if } // for } else { $j = ceil ( $this -> maxlist / 2 ); for ( $i = $j ; $i >= 0 ; $i -- ) { if ( $this -> currentpage == ( $this -> currentpage - $i )) { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord= " . (( $this -> currentpage - $i - 1 ) * $this -> maxline) . " '>[ " . ( $this -> currentpage - $i ) . " ]</a> " ; } else { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord= " . (( $this -> currentpage - $i - 1 ) * $this -> maxline) . " '> " . ( $this -> currentpage - $i ) . " </a> " ; } } for ( $i = 1 ; $i <= $j ; $i ++ ) { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . ' ?beginrecord= ' . (( $this -> currentpage + $i - 1 ) * $this -> maxline) . " '> " . ( $this -> currentpage + $i ) . " </a> " ; } } if ( $this -> beginrecord == $lastpage ) { echo ' [下一页] [末页] ' ; } else { echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$nextpage'>[下一页]</a> " ; echo " <a href=' " . $_SERVER [ ' PHP_SELF ' ] . " ?beginrecord=$lastpage'>[末页]</a> " ; } // echo "$this->currentpage / $this->totalpages,共有记录数:$this->totalrecords"; } }} /* /test$dg = new datagridclass('localhost','root','root','test',2,5);if (isset($_GET['beginrecord'])){ $dg->__set('beginrecord', $_GET['beginrecord']);}else { $dg->__set('beginrecord', 0);}$rs = $dg->readdata('select * from testuser');if(!$rs){ echo '暂无数据……';}else { $i=0; echo "<table width='40%' border='1'>"; echo "<tr><td>id</td><td>name</td></tr>"; while($i<count($rs)) { echo "<tr><td>"; echo $rs[$i]['id']; echo "</td><td>".$rs[$i]['uname']; echo "</td></tr>"; $i++; } echo "</tale>";}$dg->navigate();$dg = NULL; */ ?>