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

十天学会php之第八天

1 ]1 P! T9 C9 B) G5 v
学习目的:做一个分页显示/ Z; J2 W6 m' @& s  W: t5 E$ S
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
( |$ e: X, U  N$ M3 h. s$ M2 L1 u7 Q& K3 O9 r3 B+ `  }, {
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
" y, ]2 L0 K4 }/ k0 w2 J: @0 D% A
7 l3 m- y9 e3 }$ _# ?
$execc="select count(*) from tablename ";) E$ K" E' Z. u; J2 n, t' |) }
$resultc=mysql_query($execc);
: b- W5 B0 ?/ o: M, N# a% |$rsc=mysql_fetch_array($resultc);9 x! @# E+ {- W! n' r
$num=$rsc[0];
% J9 }0 s5 H; l
5 ]: ]/ ?8 `/ u* B8 a
这样可以得到记录总数
! D( j5 }' z0 y5 Zceil($num/10))如果一页10记录的话,这个就是总的页数8 V& `6 ?4 G7 @0 j) ~( _" Y
所以可以这么写
* D! y# f+ \3 V8 `if(empty($_GET['page']))* B. B" `, w- V3 n1 n1 S9 w$ \
{
$ I# y7 I/ J5 H# n  p$page=0;  s/ R' X7 `5 H4 {( ^5 a
}
+ r6 `" f; B" n3 R- v$ C; Yelse
" |! K4 B" R  Q' I4 N{
! z0 V. ?: q) r9 s1 N% K$page=$_GET['page'];$ Y" \/ L1 U. k6 L
if($page<0)$page=0;
5 I- R/ W" b% K2 j/ xif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
+ [6 m  h7 W6 k; ~, B; c& u& n* _} % i9 h' \2 V9 r1 U* s% C

6 j6 h7 q0 K0 Z+ e9 V2 |2 W这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
# A  v0 V7 O: r' s( s1 R//一页是10记录的
; H1 }1 S2 N* G5 S2 {, c  X
最后我们需要做的就是几个连接:
8 ~8 `9 `/ s. t  Y  w<a href="xxx.php?page=0">FirstPage</a> * t. H5 F- F4 G$ \7 U5 z" @
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
- _7 q: I0 X0 }<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
* r1 X8 g1 _9 [8 e. A) W<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>  A8 p' k, R- I5 g

: R: f( _  V) P0 e
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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