libaiyi 2008-4-14 21:20
分页问题
我这个就是看了淡水大师的分页后想用下,还是有点不明白。我的代码和数据库sql在下面
libaiyi 2008-4-14 21:22
自己顶下了
<?php
/*
mysql_pager.class.php
三个参数。 mysql_query()的结果, url变量page, 您要的每页记录数
例子在这个文件底部
淡水河边整理测试
*/
class mysql_pager {
// define properties
var $page;
var $result;
var $results_per_page = 3;
var $total_pages;
/*
Define the methods
下面是构造函数,和类同名(>php4)
需要查询的结果句柄,当前页码,每页记录数
like: $f->mysql_pager($result, 1, 15);
*/
function mysql_pager( $result, $current_page, $results_per_page ) {
if(!$result){
echo "<div align=center>数据库未运行,结果集错误</div>\n";
return;
}
$this->result = $result;
if(!$current_page || $current_page < 0)
$this->page = 1;
else $this->page = $current_page;
if(!empty($results_per_page))
$this->results_per_page = $results_per_page;
$numrows = @mysql_num_rows($this->result);
if(!$numrows) {
echo "<div align=center>查询结果为空.</div>\n";
return;
}
$this->total_pages = ceil($numrows / $this->results_per_page);
}
/*
下面是打印内容的函数,可以不用,也可以根据自己的需要扩展
这里只是打印出id
*/
function print_paged_results() {
echo "<table border=0 align=center>\n";
$start = ($this->page - 1) * $this->results_per_page;
mysql_data_seek($this->result, $start);
$x = 0;
for($i = 1; $i <= $this->results_per_page && $row = @mysql_fetch_array($this->result); $i++) {
if($x++ & 1) $bgcolor = "#F2F2FF";
else $bgcolor = "#EEEEEE";
echo "<tr bgcolor=$bgcolor><td>". $row["id"] . "</td></tr>";
// 编辑这部分输出任何您想要的HTML
}
echo "</table>\n";
}
/*
下面是打印页码和链接的函数
在我们需要显示页码的地方调用
*/
function print_navigation() {
global $PHP_SELF;
echo "<div align=center>";
for($i = 1; $i <= $this->total_pages; $i++) { #loop to print << 1 2 3... $total_pages >>
if($i == 1 && $this->page > 1) #Prints the << first to goto the previous page (not on page 1)
echo "<a href=\'$PHP_SELF?page='.($this->page - 1).'\' onMouseOver=\'status='Previous Page';return true;\' onMouseOut=\'status=' ';return true;\'>?</a>";
if($i == $this->page) #Doesn"t print a link itself, just prints page number
echo "<font color=\"#ff3333\"> $i </font>";
if($i != $this->page) #Other links that aren"t this page go here
echo "<a href=\'$PHP_SELF?page=$i\' onMouseOver=\'status='Go to Page $i";return true;\" onMouseOut=\'status=' ';return true;\'> $i </a>";
if($i == $this->total_pages && $this->page != $this->total_pages) # Link for next page >> (not on last page)
echo "<a href=\'$PHP_SELF?page='.($this->page + 1).'\' onMouseOver=\'status='Go to the Next Page';return true;\' onMouseOut=\'status=' ';return true;\'>?</a>";
}
echo "</div>\n";
}
}
mysql_connect("localhost","root","root");
mysql_select_db("sm");
$result= @mysql_query("Select * FROM sm");
$p = new mysql_pager( $result, $page=$_GET["page"], 2 );
$p->print_navigation();
$p->print_paged_results();
$p->print_navigation();
?>
我就不知道怎么把它他我自己的数据联系到一起。我以前都是用php4写的纯面向过程的。
libaiyi 2008-4-16 14:40
打家看看吧。我以前想自己写了但是以前方法和类有太差别了。
libaiyi 2008-4-16 17:51
[quote]原帖由 [i]libaiyi[/i] 于 2008-4-16 14:40 发表 [url=http://www.dophp.net/redirect.php?goto=findpost&pid=9665&ptid=1653][img]http://www.dophp.net/images/common/back.gif[/img][/url]
打家看看吧。我以前想自己写了但是以前方法和类有太差别了。 [/quote]
没人看,我可只想去了。想出来别怪我!哈哈!
libaiyi 2008-4-16 18:19
<script language="php">
echo"<?php ?>";
</script>
libaiyi 2008-4-24 11:56
我自己搞定了,淡水大师指点了下果然有效,感谢大师了。要请他吃饭的。
lxylxy8866 2008-4-24 18:06
鼓励
嘿嘿