返回列表 发帖

十天学会php之第八天


/ w" m/ T! i  x$ h+ N% }  l学习目的:做一个分页显示
) b5 Q+ `$ m" A$ U# o0 ~关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
, `! z) j$ {) G& f$ }3 K" o/ F% ~7 Z; L% A0 x
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
' K0 L4 I. X- I: T  a

" t( W; L$ x& d$ o$execc="select count(*) from tablename ";
: Q# L6 w7 g1 R3 |* B$resultc=mysql_query($execc);
  Q) r  Z/ x6 `# m% r- ^$rsc=mysql_fetch_array($resultc);; V0 `& i) [/ {8 s
$num=$rsc[0];" q: |6 H! w+ b% }. J* x  }& r
5 L, h6 r3 E; i5 p7 {
这样可以得到记录总数
( ^6 ?+ ~8 c$ y+ L0 M: iceil($num/10))如果一页10记录的话,这个就是总的页数8 l" _1 U: _) A& d! m$ o
所以可以这么写+ U6 `% |) M( J& W0 |+ c; A
if(empty($_GET['page']))0 B9 q& e; F& E3 O7 P9 q1 g! u
{
* P; B: t' [% z: w- X0 ?$page=0;6 f2 N4 S5 ?  Z# B# S7 e
}
, C4 A- W+ ?# z* {, o* B/ Z/ q. ielse
* e' `/ \" w- k8 x! c{
& d% i% r( v7 A, _% ~' M$page=$_GET['page'];
( E& M. |  p; X* Rif($page<0)$page=0;
& e) C4 }6 l6 U- j% Y( Yif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
& t5 I1 F  A* T4 k8 ^3 v$ B3 r}
) L' _5 o; y& B( r. \) D$ E- n" R5 s
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
$ R, y) i1 a1 ~! v* D6 z//一页是10记录的

; w( p' w0 r6 W5 @7 c最后我们需要做的就是几个连接:7 {6 s. I4 x( w' ^- N) c" D5 W
<a href="xxx.php?page=0">FirstPage</a> 0 P) _% s6 W& e, T8 o
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> + {$ f, V7 N# `# t* S; B& W
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
1 R; d' Z1 [8 j5 C; b1 I<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>  Y2 ^- w8 y* {5 D) K: n
" [. u' f2 \" g; Q
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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