  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14161
- 金币
- 2371
- 威望
- 1647
- 贡献
- 1319
|
! x. L& m& ~' Z0 H0 O学习目的:做一个分页显示
# N, F! C0 M# B, m9 k; [关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num/ Y; B# T) o6 `; m$ |
2 G4 {2 M, f) W( v0 A: x. s. t
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。; ?; J( T8 O$ [2 D y1 j
" i5 _& I* d+ C5 O b1 K
$execc="select count(*) from tablename ";# k0 g' {: [. c) l1 g8 X- b
$resultc=mysql_query($execc);
$ j" k3 U0 f/ d' b' X3 q$rsc=mysql_fetch_array($resultc);6 T: Q' w2 n$ g. i; D6 N% V
$num=$rsc[0];' c9 _+ [3 o: S( z: d5 O
8 D4 V9 S: ?$ n c这样可以得到记录总数" ~) S7 K# Z# U, a! l9 b
ceil($num/10))如果一页10记录的话,这个就是总的页数
7 j; J6 p% F, Z1 b% V" ~所以可以这么写& O1 f1 F/ I! l$ K
if(empty($_GET['page']))
. _* l' G; i6 b{( ^2 N* [" E; T
$page=0;
# [# `) ?& d% p# K}
3 N! ?" q6 P8 C# X' E. xelse$ a! J3 s4 ~: M. g; t% N
{
# u0 Y* l' ~' v1 U$ f1 L) ]$page=$_GET['page'];- U/ f; R, s x9 `% b2 j) J6 N5 c0 B
if($page<0)$page=0;
) B: g9 _5 y" L Xif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-17 x I4 ^' e5 Q z' v
}
@4 W' ]+ J! N4 t: i
# M+ U% H7 Z/ K$ w* S9 R A9 r7 `4 K这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";5 E, O0 w% ~4 F$ |
//一页是10记录的8 u/ T4 m6 Q0 O, q
最后我们需要做的就是几个连接:
7 l1 `( [/ v' _% @<a href="xxx.php?page=0">FirstPage</a> ; i& t9 D0 [9 O0 g1 h
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
/ A6 e) v$ k/ t$ b0 c<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
8 _' r" g9 f1 u: m0 h4 R' m7 C<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 K! v7 x! J& x) b, ^# j, e
4 A% @& [0 j j6 k1 g3 x这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|