php分页显示数据库内容

来源:互联网 发布:故宫淘宝营销策略分析 编辑:程序博客网 时间:2024/05/17 02:54

page.class.php类

<?php  /* * *********************************************   * @类名:   page   * @参数:   $myde_total - 总记录数   *          $myde_size - 一页显示的记录数   *          $myde_page - 当前页   *          $myde_url - 获取当前的url   * @功能:   分页实现   * @作者:   宋海阁   */  class page {      private $myde_total;          //总记录数      private $myde_size;           //一页显示的记录数      private $myde_page;           //当前页      private $myde_page_count;     //总页数      private $myde_i;              //起头页数      private $myde_en;             //结尾页数      private $myde_url;            //获取当前的url      /*       * $show_pages       * 页面显示的格式,显示链接的页数为2*$show_pages+1。       * 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页]        */      private $show_pages;      public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) {          $this->myde_total = $this->numeric($myde_total);          $this->myde_size = $this->numeric($myde_size);          $this->myde_page = $this->numeric($myde_page);          $this->myde_page_count = ceil($this->myde_total / $this->myde_size);          $this->myde_url = $myde_url;          if ($this->myde_total < 0)              $this->myde_total = 0;          if ($this->myde_page < 1)              $this->myde_page = 1;          if ($this->myde_page_count < 1)              $this->myde_page_count = 1;          if ($this->myde_page > $this->myde_page_count)              $this->myde_page = $this->myde_page_count;          $this->limit = ($this->myde_page - 1) * $this->myde_size;          $this->myde_i = $this->myde_page - $show_pages;          $this->myde_en = $this->myde_page + $show_pages;          if ($this->myde_i < 1) {              $this->myde_en = $this->myde_en + (1 - $this->myde_i);              $this->myde_i = 1;          }          if ($this->myde_en > $this->myde_page_count) {              $this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count);              $this->myde_en = $this->myde_page_count;          }          if ($this->myde_i < 1)              $this->myde_i = 1;      }      //检测是否为数字      private function numeric($num) {          if (strlen($num)) {              if (!preg_match("/^[0-9]+$/", $num)) {                  $num = 1;              } else {                  $num = substr($num, 0, 11);              }          } else {              $num = 1;          }          return $num;      }      //地址替换      private function page_replace($page) {          return str_replace("{page}", $page, $this->myde_url);      }      //首页      private function myde_home() {          if ($this->myde_page != 1) {              return "<a href='" . $this->page_replace(1) . "' title='首页'>首页</a>";          } else {              return "<p>首页</p>";          }      }      //上一页      private function myde_prev() {          if ($this->myde_page != 1) {              return "<a href='" . $this->page_replace($this->myde_page - 1) . "' title='上一页'>上一页</a>";          } else {              return "<p>上一页</p>";          }      }      //下一页      private function myde_next() {          if ($this->myde_page != $this->myde_page_count) {              return "<a href='" . $this->page_replace($this->myde_page + 1) . "' title='下一页'>下一页</a>";          } else {              return"<p>下一页</p>";          }      }      //尾页      private function myde_last() {          if ($this->myde_page != $this->myde_page_count) {              return "<a href='" . $this->page_replace($this->myde_page_count) . "' title='尾页'>尾页</a>";          } else {              return "<p>尾页</p>";          }      }      //输出      public function myde_write($id = 'page') {          $str = "<div id=" . $id . ">";          $str.=$this->myde_home();          $str.=$this->myde_prev();          if ($this->myde_i > 1) {              $str.="<p class='pageEllipsis'>...</p>";          }          for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {              if ($i == $this->myde_page) {                  $str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页' class='cur'>$i</a>";              } else {                  $str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页'>$i</a>";              }          }          if ($this->myde_en < $this->myde_page_count) {              $str.="<p class='pageEllipsis'>...</p>";          }          $str.=$this->myde_next();          $str.=$this->myde_last();          $str.="<p class='pageRemark'>每页100条,共<b>" . $this->myde_page_count .                  "</b>页<b>" . $this->myde_total . "</b>条记录</p>";          $str.="</div>";          return $str;      }  }  ?>  

内容显示页面–数据库连接

$yhming = $_SESSION['user'];require_once('../wtcl/page.class.php'); //分页类  $showrow = 100; //一页显示的行数  $curpage = empty($_GET['page']) ? 1 : $_GET['page']; //当前的页,还应该处理非数字的情况  $url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q']  $sql = "SELECT * FROM jsbb_nr WHERE jsbb_yhming='$yhming' ORDER BY jsbb_time DESC"; // asc或desc(即升级或降序)按用户显示WHERE jsbb_yhming='$yhming'$total = mysql_num_rows(mysql_query($sql)); //记录总条数  if (!empty($_GET['page']) && $total != 0 && $curpage > ceil($total / $showrow))      $curpage = ceil($total_rows / $showrow); //当前页数大于最后页数,取最后一页   $sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;";  //获取数据$rs_nr = mysql_query($sql); 

内容显示页面–数据显示

<?php while($row = mysql_fetch_array($rs_nr)){?><div style="width:200px; height: 20px;"><?=$row['jsbb_biaoti3']?>//显示内容的代码,此处省略<?php } ?>div class="showPage">                      <?php                      if ($total > $showrow) {//总记录数大于每页显示数,显示分页                          $page = new page($total, $showrow, $curpage, $url, 2);                          echo $page->myde_write();                      }                      ?>                  </div>
0 0