标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
$ B9 u4 T) r/ k
学习目的:做一个分页显示
( T1 N7 d# M9 ?' K+ j0 I s5 y/ ~6 K
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
* t6 p5 N* ^- k
1 s/ b" p; l4 f# Y9 s' o8 ~
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
/ ?0 ~+ A# I4 f- W0 f
$ a$ w% Z, Y, ~: C% ]( n5 Z
$execc="select count(*) from tablename ";
% e: R7 {; x2 h4 k
$resultc=mysql_query($execc);
I) g3 A7 V7 L3 J3 {$ W# f
$rsc=mysql_fetch_array($resultc);
- U% C, \# O( i# F1 J6 X( m
$num=$rsc[0];
- I& r& M* G" e8 ]+ e- k
5 K( X7 X. f; w
这样可以得到记录总数
+ V/ W" Q" }% c
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
o" `1 b0 F$ X2 X
所以可以这么写
: }, B7 Q* N/ p; u# ?* q* L6 i* z1 A
if(empty($_GET['page']))
7 c' s- s, R5 H) a2 G
{
5 U8 ^4 f* Z( @+ i# }
$page=0;
: P& w7 u% p; `
}
/ ?1 U% Q& D( g/ u% k
else
* B+ ~& t0 D% Y6 L( p4 @
{
5 }+ L- l! ^9 T* z
$page=$_GET['page'];
' s4 P2 h2 t, H( v5 m3 W: W- o
if($page<0)$page=0;
q# c% |8 e5 }- i' U8 A+ C
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
i1 ~$ w6 |4 m& F- R/ b7 p# @ M
}
2 z& l' f& j! C% v" K0 f
- M6 Z; M' v8 Y) W! ^) P. t
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
1 ~" Q, J7 G) l% y
//
一页是
10
记录的
8 x- l4 E3 u9 e* _& a0 Q" R+ B
最后我们需要做的就是几个连接:
! x% Q) i/ q; G/ `
<a href="xxx.php?page=0">FirstPage</a>
1 e% v. }1 h/ ^
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
+ }$ L& o+ b# s) y+ d
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
, f4 N7 A* h. E. J# V; E/ F
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
, C. d: V* N; _- h; k# V
6 S u; ^& y" p& Q
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2