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

十天学会php之第八天


5 }3 F& p/ s1 I$ \' K. n学习目的:做一个分页显示) |9 u& E4 e& a$ C; m- U4 }& j! y
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
) ]! D. _& o5 g% i; Z$ y! t' M( z- F9 V' \1 l, y
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
. }4 `; O* @) I' |- q- E% u
( |( G4 [- s3 V& y
$execc="select count(*) from tablename ";
8 ^. Z* P0 w" ^* Q; Y* Y" I$resultc=mysql_query($execc);' B5 Y1 z. M( U* X) M; E
$rsc=mysql_fetch_array($resultc);( t  o0 Q5 c' z% _
$num=$rsc[0];
. d6 g' j4 e' g, r2 s& l% a( G7 _6 y5 w, w* m2 A7 k0 J" ^
这样可以得到记录总数% y! p" N$ I, i$ _
ceil($num/10))如果一页10记录的话,这个就是总的页数% J: Y, S9 e5 d- u6 ]% B+ y6 i9 C
所以可以这么写- S. B  y9 L7 k! T! q* A# @
if(empty($_GET['page']))
4 q  t: m+ O8 U/ |. U6 C$ ~4 E4 s{
/ j; C6 Z6 x1 m9 |  w$page=0;
- Z: A% a& w, W1 ?3 u6 [. ^}
* R' T% A% w% c$ V+ ^+ eelse
4 _' Q% Q8 G7 W7 L{' a: |5 g3 m# M4 {
$page=$_GET['page'];, a9 F  N) j3 c
if($page<0)$page=0;; G6 L; q$ H5 y, A
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-13 Q2 H( S) ]" V# Y. S1 `
} 6 Z8 P6 x7 d, P. T) K* Z" F% Z

/ h6 n6 L) y1 r7 m4 u5 W这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";$ I( J5 u# F4 Y  B3 u7 D* d! E9 C
//一页是10记录的

/ V( Y- j. y0 Z' ?+ z最后我们需要做的就是几个连接:0 I0 u4 Q9 a, e
<a href="xxx.php?page=0">FirstPage</a>
& c, o# R' O/ _* @<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
; q( L2 G& K4 e  x<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
0 l5 }4 G- y0 N: v3 f0 z/ P/ T<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>" L9 ^) O: ^% m: b9 v3 L
4 M4 b) t  u" `4 ^3 Q: _/ c
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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