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

十天学会php之第八天

4 o( t) i2 W+ r& n
学习目的:做一个分页显示
: v/ p; N% c8 m关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num$ |2 J' @" b! s3 t9 n: |1 i  Q

3 x5 C) W" n  j$ I对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

) y: P. X5 D4 R2 c, z
0 m1 \- G/ R) M0 ^$execc="select count(*) from tablename ";% N' A$ k$ _; y7 ?- v& Z8 H% I
$resultc=mysql_query($execc);6 s6 m6 \' v9 A. u
$rsc=mysql_fetch_array($resultc);( N5 y+ u2 S) @! _) t; U
$num=$rsc[0];
+ h& ^. u* k! ~  \/ U+ O
" V% |# }4 M: E# [( y$ K
这样可以得到记录总数
6 K4 n: g. [) X6 g( R+ y: E8 Zceil($num/10))如果一页10记录的话,这个就是总的页数
( ?1 B; q8 j  b. n5 F! r所以可以这么写
% l. X3 u4 h+ R( G' A% g1 `$ cif(empty($_GET['page']))# ], b  G7 ~: E4 m
{3 \9 g. z- v# X6 S3 R9 x
$page=0;# G0 Y9 H5 @5 w" l# [3 c
}
7 M5 q+ r1 j* r6 E. melse
) s* S# l  M- @* U{
  U  \- E7 S. Q" C$page=$_GET['page'];4 x1 L3 U, k. D9 L1 T- t" t% M" R& s* k
if($page<0)$page=0;* O4 [: T+ [. y' h! P9 O! ^
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
1 [$ u4 l+ I+ w5 d} 5 L, G- L6 u/ U5 u8 `$ G3 N

. d/ B" h& U4 q' U9 ?这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";: C4 D2 ^5 v- n( t) W+ [
//一页是10记录的
: }7 E. f3 i2 h5 C  l  ]# S; _' V
最后我们需要做的就是几个连接:! s" ]% S2 Y/ H2 F. V& e8 Y
<a href="xxx.php?page=0">FirstPage</a>
- c0 s8 `; x/ ~/ \" }+ l<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> " y" P7 _8 y& e5 ]8 c2 H
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ Z! b# {. R: e/ W- V4 e6 A2 U
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
: I* ]2 D; c. L7 q* Z- Y+ E3 z5 _
: J) t) a- \5 S* b8 Z( N6 s
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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