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

十天学会php之第八天


6 ]  {; h! `( M( D6 Q学习目的:做一个分页显示! d& c  [4 W% \" b; J
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num  B$ R# r0 f  \0 G; w& |
4 D. A  M% i/ Z4 g
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

$ s% V, b% N- u" C5 O  B
8 s8 Y) q$ v4 b' O& y! X$execc="select count(*) from tablename ";
+ C: v9 S% q. T$ L" m6 D5 K  {7 y$resultc=mysql_query($execc);
# G% K3 R) u0 w; E$rsc=mysql_fetch_array($resultc);
8 K2 f0 K. e" k6 _$num=$rsc[0];$ ~9 T& C) `1 a: l2 X

1 H% }7 N; q3 M6 C* V  ]+ U7 `) Z5 R
这样可以得到记录总数
: @0 [- O* B7 L  [! F8 B/ ?ceil($num/10))如果一页10记录的话,这个就是总的页数
1 L2 F; d4 ?, X# }' Z5 Z所以可以这么写
% k% h* B9 n/ C; d! V& l1 y& cif(empty($_GET['page']))4 g8 z# _* C9 B3 f2 b' I3 F
{
1 n( M: `' d7 I$page=0;
4 i: h/ d0 \. S. e; D}
/ q$ |1 t. g' ~( M6 y& oelse
1 s7 m" C0 z% k+ t: a1 a4 H  @{
, M) o: Q( B( G$ A" C/ d! {- Q$page=$_GET['page'];
0 b! O, ~8 o& X$ f9 T) H. j$ ^  Dif($page<0)$page=0;
* U# {$ n# m2 q# s( i1 T- X7 n; @if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1& a5 p2 U5 Z1 ?4 z4 S" S" n
} , c, o! ~/ `7 ?" R; }2 |& A( }4 D) o
8 U2 }+ Z# Z$ E$ D+ r4 G
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";$ {9 L1 R" j: {
//一页是10记录的

  y+ X4 j& U* ?$ T/ o' j最后我们需要做的就是几个连接:
$ W7 r0 q- x4 i8 F% _<a href="xxx.php?page=0">FirstPage</a> 3 K1 G# S, I& p  ~3 K
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 6 [: i. p  m8 C. j
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 1 z  o, W; B+ `- Z# w* Q
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
- X. j( p) [1 `- d4 u/ y7 H& u& W& G5 P
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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