老谭 PHP技术笔记

对技术要博爱,也要专一! TamS 和你一起成长!
posts - 5, comments - 17, trackbacks - 0, articles - 0

备忘:建立一个简单的数据表,示范如何分页,方法比较简单,大家给给意见
建立表:

1create table news_categories
2(
3news_categories_id tinyint(3) UNSIGNED not null AUTO_INCREMENT,
4categories varchar(20not null,
5PRIMARY KEY (news_categories_id)
6);

分页代码:

 1<?php
 2
 3/**
 4 * @author Karl Tam
 5 * @copyright 2007
 6 */
 7
 8$Page_title='View The Current Categories';
 9
10echo '<h1>新闻分类</h1>';
11
12require_once('connection/conn.php');
13
14//每页的记录数
15$display=10;
16
17//限定页数
18if (isset($_GET['np'])){//已经限定
19    
20    $num_pages=$_GET['np'];
21}else{
22    $query="select count(*) from news_categories order by news_categories_id DESC";
23    $result=mysql_query($query);
24    $row=mysql_fetch_array($result,MYSQL_NUM);
25    $num_records=$row[0];
26
27    //计算页数
28    if ($num_records>$display){
29        $num_pages=ceil($num_records/$display);//Ceil返回$num_records/$display返回的下一个整数,这里的作用是取得最大页数
30    }else{
31        $num_pages=1;
32    }
33}
34
35//下面定义数据库用哪里开始返回记录
36if(isset($_GET['s'])){
37    $start=$_GET['s'];
38}else{
39    $start=0;
40}
41
42//查询
43$query="select categories,news_categories_id from news_categories order by news_categories_id DESC Limit $start,$display";
44$result=@mysql_query($query);
45
46//表头
47echo '<table>
48<tr>
49    <td>edit</td>
50    <td>delete</td>
51    <td>Categories ID</td>
52    <td>Categories Name</td>
53</tr>';
54
55//数据
56while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
57    echo '<tr>
58    <td><a href="edit_news_categories.php?id='.$row['news_categories_id'].'">编辑</a></td>
59    <td><a href="delete_news_categories.php?id='.$row['news_categories_id'].'">删除</a></td>
60    <td>'.$row['news_categories_id'].'</td>
61    <td>'.$row['categories'].'</td></tr>';//创建编辑页,删除页链接
62}
63echo '</table>';
64
65mysql_free_result($result);//释放资源
66mysql_close();//关闭数据库
67
68//建立页码数导航链接
69
70///*
71if ($num_pages>1){
72    echo '<br />';
73    $current_page=($start/$display)+1;
74    
75    //判断
76    //如果它不是第一页,创建“前一页”按钮
77    if ($current_page!=1){
78        echo '<a href="view_news_categories.php?s='.($start-$display).'&np='.$num_pages.'">前一页</a>';
79    }
80    
81    //创建所有页码
82    for($i=1;$i<=$num_pages;$i++){
83        if ($i !=$current_page){
84            echo '<a href="view_news_categories.php?s='.(($display*($i-1))).'&np='.$num_pages.'">'.$i.' </a>';
85        }else{
86            echo $i.' ';
87        }
88    }
89    
90    //判断
91    //如果它不是最后一页,创建“下一页”按钮
92    if ($current_page!=$num_pages){
93        echo '<a href="view_news_categories.php?s='.($start+$display).'&np='.$num_pages.'">下一页</a>';
94    }
95}
96//*/
97
98?>

Feedback

# re: PHP中,记录数过多,如何分页?  回复  更多评论   

2007-07-29 12:11 by 琥珀
分页就分页,用不着绑定数据库吧。
我的博客:http://www.hoopower.com

# re: PHP中,记录数过多,如何分页?  回复  更多评论   

2007-07-29 20:45 by TamS
呵呵,我也是和大家分享一下,请多指教

# re: PHP中,记录数过多,如何分页?  回复  更多评论   

2007-11-12 11:31 by <a href=http://minidx.com>minidxer</a>
只不过是写法上不是很好,不过功能实现了

# re: PHP中,记录数过多,如何分页?  回复  更多评论   

2008-04-13 12:50 by ASFD
你这不就是普通分页吗,也没有对记录多时的特殊处理啊

# re: PHP中,记录数过多,如何分页?  回复  更多评论   

2008-04-22 17:12 by eccentric
不懂

只有注册用户登录后才能发表评论。
网站导航: