|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14353
- 金币
- 2462
- 威望
- 1647
- 贡献
- 1410
|
4 o% z4 u8 y6 y* f4 q: A) A0 `( M' X
学习目的:做一个分页显示
/ i0 U% {% U2 [2 D+ Q: s/ j关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num+ C6 w- F7 s* T6 B. {
2 D; D* \ V, N* Y9 @
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。& w8 p$ m5 S! r V: d
2 o* V$ I4 e, B! \ J; d. [$execc="select count(*) from tablename ";" |) J! S! a" I6 N& i& g/ {
$resultc=mysql_query($execc);+ y2 @- @/ x4 B) `+ n2 d
$rsc=mysql_fetch_array($resultc);- q! z8 G* S5 W/ u" E9 K& y
$num=$rsc[0];5 [3 ?8 Y' F0 P5 ?4 z C O
% N7 n, X9 B) [0 r1 O) J/ _+ x
这样可以得到记录总数
7 r8 c+ _) L/ W7 u/ yceil($num/10))如果一页10记录的话,这个就是总的页数
- l6 V+ N9 z6 X. @; ], _6 E7 O所以可以这么写
$ |4 Z) ~0 H3 r0 iif(empty($_GET['page']))- a9 C! u' ?( Z# t
{
, P# B0 s4 Q3 M' A* f$page=0;; K% ^6 U: {. k- H! v& c
}
# v! Z3 b6 E, n+ [# \else# p6 K2 f5 F/ |, A! c: F
{, V% U4 ?6 g& n; Y3 D9 _
$page=$_GET['page'];
: ]/ R: i: `( f; O6 M3 vif($page<0)$page=0;; n* T& T3 w6 p
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-16 K) V" M$ `+ |! A7 j$ C; Z5 g6 X
} & \+ t2 ?3 \ x- h$ z
) |# N% J( Q, S" h9 o! `4 q
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";+ F0 W6 y1 }) t2 }: [
//一页是10记录的. I8 y, z2 ?3 K7 U0 G- b1 |
最后我们需要做的就是几个连接:" n" G! v( A7 d( V0 `/ Y! K
<a href="xxx.php?page=0">FirstPage</a> $ a( q+ g& N. j, L8 ~1 N; p+ ^7 f5 y
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
; V7 p% B) y8 M! N+ O<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ |( z5 e* G3 ~6 m& ^6 \9 D7 k
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
' X c! B( m M1 i, C9 Z W7 d/ @6 c+ I, C3 @
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|