  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
. O5 {. P% B( y
学习目的:做一个分页显示! A/ `) X6 J0 s0 ?7 ?
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
/ t2 v$ g" [& [9 h" H
# a4 A. W$ E# \: _* ^9 |8 I+ ^! a7 x对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
1 B, a- S% R* b+ M
" s5 E& l4 @5 r i9 T9 t' o$execc="select count(*) from tablename ";9 B6 u' a; r8 X$ b9 [( s) d
$resultc=mysql_query($execc);8 ^ Z% O: m5 n, g t4 z
$rsc=mysql_fetch_array($resultc); C: Y9 _6 j/ \3 {" M: [: [$ F
$num=$rsc[0];
2 b8 V k( X! U0 c( r' b+ B7 q6 _ _% K" W6 x
这样可以得到记录总数: B2 v% \0 Z" ?) r- h# Z
ceil($num/10))如果一页10记录的话,这个就是总的页数
" @3 Y( Q6 T* @5 U9 E* ?所以可以这么写1 M: b( b: F+ A; e( k
if(empty($_GET['page']))
! D/ G$ L8 C# L2 K, W{
, [# q! g' a4 U$page=0;
" ?: J" r7 m6 i+ f( U}% G. d" d# U8 g3 h. F! ^
else
, X8 \% P. o) N L. p5 X4 U5 A) L{( X2 c/ Q1 g; a& M6 B/ [
$page=$_GET['page'];( R# |$ p( Z2 Q8 o5 D. i
if($page<0)$page=0;/ W/ b( c, Y! @9 X7 y
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1" {% F6 g* y6 g( b% t0 M s
} ! v l2 e; y1 H; w Y, c+ C# S
% c' a% d$ s7 |/ v% {* Q5 O3 v这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";$ f5 m6 y6 b9 @: a' ]2 ]+ ~& i
//一页是10记录的
2 y, t* X; k r1 O, s6 \最后我们需要做的就是几个连接:" s% I7 B* e& \
<a href="xxx.php?page=0">FirstPage</a> : _/ s5 }! I) g" W" w0 t8 ]
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
* n S& u4 h( q* | v<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
% d5 j- V7 A0 l4 b3 n( A. Q6 @<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>$ j0 c5 L# u# N' P3 j0 y
P3 R5 V3 ?5 }
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|