  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
2 ^, ~/ Q( V7 a1 U5 f, f5 k
学习目的:做一个分页显示& ]+ S2 K) i6 k
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num- r2 N2 Y$ Y3 o3 A# s% ?6 Y
5 j$ t. I( H z2 j' N& X' e8 d
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。" s. P6 k, D7 I3 D; E
9 y, W! D: M: s. C& o
$execc="select count(*) from tablename ";5 h" h/ c! _8 p. @' Q
$resultc=mysql_query($execc);! o: F ?( c( w* W
$rsc=mysql_fetch_array($resultc);4 R9 x5 o5 F. ^) \
$num=$rsc[0];
) D; l8 [! g+ w
$ o) l! y# I0 P9 }+ M0 b+ ~! D这样可以得到记录总数' t8 ~& Y, P. ]% G
ceil($num/10))如果一页10记录的话,这个就是总的页数
9 L( W( i# v$ D; d; k* U9 F所以可以这么写: Y- x" {' R% p3 C$ m- z; y4 {1 p3 \
if(empty($_GET['page']))
0 d' _8 |: C5 T7 w* l! i{
% U/ |- Z4 U1 l/ z) A$page=0;
9 d1 j# l4 Q, I- G- m% E}3 I& h- c W) [% v7 p/ B* ~3 R6 ]
else8 ~# C. O/ B$ Y( Q- C# }
{
( S# ?. M3 l. ?: _. h. ~3 W4 P$page=$_GET['page'];* Y& x' }/ S+ t% I+ i/ ^5 E
if($page<0)$page=0;- J6 ~" h7 L q1 i k( ^+ `. i
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-19 ~. ^4 O. L5 L# n. P* v- C! o" E
}
]% S/ h# O' i3 a* H. ^. {0 |* [0 S% u+ d h% s7 M2 l
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
+ y* _: M& _; u) q3 \$ r: X' E//一页是10记录的" G8 ~7 X" u. y0 y0 e6 r
最后我们需要做的就是几个连接:+ Q$ {* G* x, v9 `
<a href="xxx.php?page=0">FirstPage</a> - A; H8 P- A7 A6 H: B. x: k1 @+ C
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
+ L" w8 P [6 i& t) \4 o<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ Q9 m) o7 _6 k: o" W/ i/ y- i
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>. |4 \% H/ g( k8 W8 N
6 W! j7 K. a& D! ~# Q0 ^ s
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|