  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
8 l) o) w. g6 [8 T9 [# o
学习目的:做一个分页显示
, e: Y# [5 i9 E- Y8 {9 q' W& a关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num( E) f% ^2 M) H$ T- ]
" X) F% z7 T# y对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
- k! s7 c" y. K8 I
" c6 F0 {) F. v$execc="select count(*) from tablename ";
9 l( }( Z3 G5 m: D5 e$resultc=mysql_query($execc);+ q# S7 l& ~5 d5 g* ]
$rsc=mysql_fetch_array($resultc);
}) }) q& S: b4 W$num=$rsc[0];
8 U3 b& {) Y, o- f; u: n F% X" x! w
这样可以得到记录总数
; B+ N( |% Q- v3 X% Yceil($num/10))如果一页10记录的话,这个就是总的页数
! A* }# o2 `- \% g' L: I+ a- v' E所以可以这么写0 l% N/ j+ s0 G$ E5 e
if(empty($_GET['page']))% ?: Z: }; e- G0 r
{
. z+ B+ \5 |0 N7 W3 }4 K$page=0;" e7 P% B$ Y2 c) V0 ?$ U! _: m1 @
}
+ c0 C4 ^6 J( f5 felse
4 E. A( N: S6 F0 j) h' T* F{, G; ? p' ]! |4 z" C A2 i8 z) F- a
$page=$_GET['page'];8 l4 I7 P& L' g' b4 l
if($page<0)$page=0;1 Y+ j7 I0 V% M* ~5 T3 a) v m7 T0 A
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1; m m& `9 |! N9 w" A
}
; N5 l, B$ m" H% [! o( }/ C! [, z4 }5 [
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
7 Y3 G6 X7 F! M8 p//一页是10记录的4 a' w4 e4 S: e4 M) ?6 H4 |1 ^
最后我们需要做的就是几个连接:
) i" K4 i, |6 V, `. _2 o<a href="xxx.php?page=0">FirstPage</a> ( Y2 m0 Y7 a* X& p
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
; q! y# \# r. M# D* y8 h/ m9 ]: Y7 _<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
4 S' ]5 y" A$ I4 I<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>9 _" G5 U7 a7 a& B; l& p: p
: q7 [! U7 I/ Q- n: {* Y
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|