  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
9 m/ Z8 N# ~/ _6 v. K, H4 [学习目的:做一个分页显示/ \4 [1 W! Y" I* ^( k) Q% v
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num/ B y( g) c/ ^) d. n5 j$ j1 {. a
% m" a" E: j7 J0 ~* d+ `8 O3 D对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
1 A8 W( }7 a: X& z. W- _. T* T V3 r: a0 v- \: z% p7 a
$execc="select count(*) from tablename ";
8 A) g& y1 @0 V2 K! F n$resultc=mysql_query($execc);
# {: q7 ^ b$ Q1 h- V; ^2 f! s, U$rsc=mysql_fetch_array($resultc);6 O# t3 r+ K& ?, \8 i; z8 I/ v3 ?
$num=$rsc[0];3 Y, f6 P. b# D$ B+ a3 h
9 k7 Q/ G7 J8 s( W: ]7 q/ s这样可以得到记录总数
( ^/ Z5 a" O- L2 y7 G2 ~! ~ceil($num/10))如果一页10记录的话,这个就是总的页数
1 O* [- x* j" }5 ]$ l所以可以这么写
, a' ~$ b5 R& n( w; p5 a0 iif(empty($_GET['page']))7 Y7 W, G6 h: g$ x+ d4 x6 q! y
{
' U @: U- Y ]5 n$page=0;
' p0 `3 O- D# k, [& B3 C4 X}
/ f3 M% A# v& V1 }6 e# }* Velse
8 t2 l# b3 a1 R; t1 c6 o: l{' w% Z( v7 | a, y# \! _: k
$page=$_GET['page'];
, [) r f1 C" I! L6 ?- |if($page<0)$page=0;
- e9 o6 G* Z ^( tif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
6 `9 D/ a/ W7 t} 9 T4 P- @- }# ]3 U% R9 X
! e+ _7 ?7 U9 ?7 b0 t& B
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";6 w; I. M0 T1 I7 b- p) D
//一页是10记录的
" Z+ x9 L: |8 I( b" L8 @最后我们需要做的就是几个连接:1 [$ D1 w2 u% P, E9 c$ u z; Y
<a href="xxx.php?page=0">FirstPage</a>
9 W5 |, e; w# K1 R<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> + P( f+ h' k. P" g
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ; t- |5 Y8 K# q" W5 F4 G2 g7 ~
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" V4 \+ B9 |$ W# A O/ ~5 U
* h3 w0 }7 s1 y6 a4 [4 P' k) a' J这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|