获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天

1 B, Z# V0 u6 G  }* K/ |
学习目的:做一个分页显示$ @+ U' A6 R" B' [  j$ }' l
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
& C' x* u  F! N) w( V
" c2 D6 X* O* {$ ~7 J对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
* Y+ Y  R! V! ?; m3 @
$ B& n+ U; X; s# f! [  R9 k
$execc="select count(*) from tablename ";
8 b0 O1 e1 k$ T" R& n6 Z6 M- A9 j$resultc=mysql_query($execc);
, }1 k* g  L7 E* B! y$rsc=mysql_fetch_array($resultc);) @& W( G/ ^: ]
$num=$rsc[0];. P2 k% D, I4 W/ X1 g1 n4 d8 I
/ t2 a& y( G: }0 a. h& ?* ^
这样可以得到记录总数
. s2 q& G( Q$ x$ ?, eceil($num/10))如果一页10记录的话,这个就是总的页数
8 f) Y: D' T6 B1 T' ~所以可以这么写/ S- A  _0 G# R; a! o8 Q
if(empty($_GET['page']))) [8 \) G& a8 O, Q
{
2 y7 T" W" F' l5 k# A( V# W/ y) K$page=0;8 h( u& s, a4 z9 Z0 x* F
}
- |$ F. _. D7 |5 zelse3 y0 n4 E+ i/ ^- y' k  C) E
{9 D+ W( K/ a4 e( B. D/ U: K8 \3 f) e+ A
$page=$_GET['page'];
# b8 Q; F5 R. c; n! Uif($page<0)$page=0;5 X5 q; `" \: j" ?8 z9 V
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1( r% ]& i6 H0 C- f* f$ Y
} 4 F* y+ a) R1 w' g0 ]' `$ c
7 r* v2 b# l9 t$ ?6 X
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
& A/ F' o, A; M1 d: V4 l) R//一页是10记录的

% c( t" h  u. \" `最后我们需要做的就是几个连接:
( E& _" ^0 p6 I4 [# J- l- `<a href="xxx.php?page=0">FirstPage</a>
# L3 T9 k5 |4 G' a6 _$ }<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
5 j8 e0 N6 _8 G, w* F! z# i<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
3 P" [( T2 |: L<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
% ]1 o* K' I  c' m  Z( [
! Z; T- A) @' A$ H3 V7 X
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: