  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
& U6 ?: p1 y0 S, [$ L
学习目的:做一个分页显示
, A, C; D% C! F1 i# M关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
8 C* v& s" H6 G4 o3 s+ i% S; t" m% X3 }: r
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。5 V2 {: m9 M/ i' C
6 [1 ]. o) t f* H* s0 }2 X4 S
$execc="select count(*) from tablename ";4 a+ D; j. Z# X( f) x2 L
$resultc=mysql_query($execc);
8 v* P6 z$ M) B) I- P+ k, P$rsc=mysql_fetch_array($resultc);' q, h( u5 L7 E4 ~, ?
$num=$rsc[0];* k* D1 c4 ?, S! H2 g
' t* f0 |& W0 ?这样可以得到记录总数9 O2 A; f/ d/ P7 d+ z4 r' f
ceil($num/10))如果一页10记录的话,这个就是总的页数
& T! S" r2 f# s1 J2 ?/ w7 a$ i2 W所以可以这么写- V( ~; u. d1 Y5 j+ \8 r
if(empty($_GET['page']))% k- y7 @5 [* N; e, s# O m( n5 S! T
{5 v1 z+ {5 b5 \' _$ s
$page=0;
, X1 s; H5 q, L: P2 k1 e}( a8 u3 L9 e2 h) L6 D) S8 k+ q. O
else
" F( P( I/ h" q" K9 t{
3 e9 Q7 G# p9 U( ^$page=$_GET['page'];. O4 ]9 Y/ F, ~. B8 e3 z
if($page<0)$page=0;
% [0 [* d% E8 Oif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-19 D3 d( G, ~" e& q* D
} " q6 h. A+ e' V( X. `1 q1 Z
* `/ T! S/ w7 y8 `8 [+ z
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
& ^ n, v, z' o- W1 v! A//一页是10记录的( A' m2 O3 C$ D8 ^
最后我们需要做的就是几个连接:
, g: U- G8 w/ B9 Y<a href="xxx.php?page=0">FirstPage</a> 3 j- c4 Z# s% Y8 i1 A$ h
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 2 Q) X* [3 ^: ]0 v4 ^( Y. S% A
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 1 A. w9 Y2 l% @3 v( k1 w8 M% P+ H3 L/ Z
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
# T( y# G! C* I# x% Q
% r1 t6 d$ ]% O. e这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|