+ -
当前位置:首页 → 问答吧 → 一简单的分页类

一简单的分页类

时间:2009-03-21

来源:互联网

<?php
/*********************************
一简单的翻页类
*  *************************/
class database {
var $link;
function database($db_host = "localhost", $db_user = "root", $db_pass = "", $db_name) {
  $this->link = @mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
  mysql_select_db($db_name, $this->link) or die(mysql_error());
}
function query($query) {
  return mysql_query($query, $this->link);
}
function num_rows($result) {
  return mysql_num_rows($result);
}
function get_pages($query, $uri, $page = 1, $num = 10) {
  $rows  = $this->num_rows($this->query($query));
  $pages = ceil($rows / $num);
  if ($page < 1) { $page = 1; }
  elseif ($page > $pages) { $page = $pages; }
  if ($page <= 1) {
   $start_link = "[首页]";
   $prev_link  = "[前一页]";
  } else {
   $prev = $page - 1;
   $start_link = "<a href='$uri&page=1'>[首页]</a>";
   $prev_link  = "<a href='$uri&page=$prev'>[前一页]</a>";
  }
  if ($page >= $pages) {
   $next_link = "[下一页]";
   $end_link  = "[尾页]";
  } else {
   $next = $page + 1;
   $next_link = "<a href='$uri&page=$next'>[下一页]</a>";
   $end_link  = "<a href='$uri&page=$pages'>[尾页]</a>";
  }
  $b = $page - 5;
  $e = $page + 5;
  if ($b < 1) {
   $e = $e - $b;
   $b = 1;
  }
  if ($e > $pages) {
   $b = $b - ($e - $pages);
   $e = $pages;
   if ($b < 1) $b = 1;
  }
  for ($i = $b; $i <= $e; $i++) {
   if ($i == $page) { $num_link .= " <a href='$uri&page=$i' style='font-weight: bold; color: #FF0000'>$i</a> "; } else { $num_link .= " <a href='$uri&page=$i'>$i</a> "; }
  }
  $extra = "当前第 $page 页/共 $pages 页 跳转到 <input type='text' name='page' size='3' id='page' /> <input type='submit' value='GO' onclick=\"window.location='$uri&page=' + escape(document.getElementById('page').value);\">";
  return "<span style='font: 12px Tahoma;'>$start_link $prev_link $num_link $next_link $end_link $extra</span>";
}
}

/*********************************
测试数据库的结构:
CREATE TABLE `test` (
   `id` varchar(10) NOT NULL default '',
   PRIMARY KEY  (`id`)
)
*********************************/
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "test";
$num_per_page = 2;
$db = new database($db_host, $db_user, $db_pass, $db_name);
var_dump($db->get_pages("select * from test", $_SERVER['PHP_SELF']."?", $_GET['page'], $num_per_page));
?>

mysql.rar (1.1 KB)

下载次数:82

2009-3-21 00:48

作者: happyyin   发布时间: 2009-03-21

不错 不错 LZ顺便说下 分页原理

作者: E蜗牛   发布时间: 2009-03-21

分页我觉得还是没有必要用php来做了。。用jquery写的分页挺好。。。

作者: 古嗣小井   发布时间: 2009-03-21

通过jquery写的分页表单样式,点击翻页图标在URL中追加一个ID,php获取ID的值,然后决定输出的数据,jquery分页表单通过ID值决定样式变化。。。。。。

作者: 古嗣小井   发布时间: 2009-03-21

分页很多工作可以用JS来完成

作者: iminto   发布时间: 2009-03-22

不知道 什么情况

作者: imhehe   发布时间: 2009-03-22

不错 可以参考你的

作者: xinxing520   发布时间: 2009-03-22

呵呵,不错啊

作者: kwlong2008   发布时间: 2009-03-24

呵呵 继续努力 支持你

作者: yangfan   发布时间: 2009-03-24

支持一下,谢谢·~~~

作者: langcier   发布时间: 2009-10-20