  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14197
- 金币
- 2389
- 威望
- 1647
- 贡献
- 1337
|
* e9 F( r; z. Y! V- B
学习目的:做一个分页显示* E1 {5 K! b( o9 g
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
% n: M& N: a2 X' M* v2 P) f/ M& A* O2 ~6 C, G5 W" L
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, d/ V Q$ y7 E, b9 l& I
6 y& C* Y2 O4 N# u% U$execc="select count(*) from tablename ";8 ^ n2 e$ |9 N2 Q
$resultc=mysql_query($execc);' L/ O( |/ P- ~. E: d& Q
$rsc=mysql_fetch_array($resultc);
4 y6 |1 F9 r8 k8 `$num=$rsc[0];' M' @" n3 m( o& X0 ^# U
: _7 A0 I$ j; N这样可以得到记录总数, O2 r9 o8 O% l' o' j
ceil($num/10))如果一页10记录的话,这个就是总的页数
, n* E9 W! M0 G" }3 F+ D所以可以这么写& Q' w" S7 [; O0 ?. A0 G
if(empty($_GET['page']))
$ K! s: c Q, L5 D+ K3 P{
3 V* q5 t5 b8 c1 Z' l$page=0;/ d' ` r, l) `4 H- Q: ]
}
% [) P4 I, r, j/ {4 u0 H: ?4 p4 Telse
6 r- S6 g) R0 S! _: K4 b& H{0 |) t6 F; F ?: n' h3 i
$page=$_GET['page'];+ ~; m, F) J4 v4 o1 U9 e6 B" V
if($page<0)$page=0;" v% b5 N" Y! ?0 k/ r9 J/ l$ L7 X
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1: s# B7 k9 @9 M& ? T
}
! y4 b d0 \' f2 k
" I/ P9 U R% [2 e! V1 e X这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
) M8 F% g) s1 v//一页是10记录的 v1 K, m4 Z2 l/ ?& C
最后我们需要做的就是几个连接:. i0 o. g; H2 M6 A' X
<a href="xxx.php?page=0">FirstPage</a> / S8 k: f" T4 E7 @- l5 A9 l
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
* W7 J2 v* M% }6 b+ i" D8 }<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ |9 A1 A! u" V6 r7 ]1 |5 K. l7 W
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>! Q! o$ t6 y" U, s5 [
" i' b" [/ K& _; U
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|