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

十天学会php之第八天


* |: Y+ `; C6 p6 z8 T学习目的:做一个分页显示9 @2 N  I% L2 B- T; ^, S* j
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
, y9 D% F1 i+ Q# x9 {" _9 p; l$ z# ~! U5 C6 _- I$ u* \
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
" L* f$ \1 D5 L- Z" O
7 \5 T# ?- }/ \% z8 j4 j
$execc="select count(*) from tablename ";+ g, e2 x5 W; |* @) l6 ?
$resultc=mysql_query($execc);
' B7 z. W" S9 B: ]$rsc=mysql_fetch_array($resultc);
, d% r1 {' y; p$ ?3 f$num=$rsc[0];( e& G: C/ u% N" V& V! X
" X; U2 t# r) a$ E
这样可以得到记录总数- X8 Z' h; ~  m( W8 ^7 M
ceil($num/10))如果一页10记录的话,这个就是总的页数/ v  C: X( @) {
所以可以这么写+ j) {+ N! V; {% c: K6 k! X/ a
if(empty($_GET['page']))/ o/ M5 ]5 R- o. L
{
; ~) k3 p6 a$ `' _0 V/ Y$page=0;
% s% y7 g1 C/ x" C  k}
8 r; G( s2 y/ A# x0 a" Jelse
/ ]% s7 N7 k6 l3 {) K; ?{& y4 x2 U# a* U, M0 p0 `' T0 h6 X
$page=$_GET['page'];, T: U$ l  {* l
if($page<0)$page=0;
/ C' G( y/ H$ Gif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1" Q+ p' a$ r6 m1 A8 p3 M- |
}
! K& l( O$ Z$ j7 \
% Z, W7 v6 M& M! m这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";/ a4 ^/ O. p" E/ p% t  D8 f
//一页是10记录的
- k' F9 {: Z% C* m- P0 F
最后我们需要做的就是几个连接:
3 s. d- ?1 F5 X8 w0 x" F0 f<a href="xxx.php?page=0">FirstPage</a>
. c( o/ e3 F; I# b/ L<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> $ t% |! J5 i" V3 }. W6 l
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ) r+ n$ D* `5 o5 p% \6 c
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>4 ^- A/ V' {7 ?- i

( l% s7 `7 h! p
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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