|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
! O3 M' \, U; f& T+ j1 }' a! B
学习目的:做一个分页显示" I' G5 A' M7 B4 {) T+ w$ D
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
+ o) p% a$ g) X: V# c! C& S2 i6 _' ~, I7 U2 ]% {
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。" A+ J' n" @7 w( i7 Y
8 S% [ W0 S* z4 ]9 D6 a$execc="select count(*) from tablename ";
2 `6 B# o* ?- Y- Z+ K- ~$resultc=mysql_query($execc);
+ S( D7 u$ |; q. v6 t2 N$rsc=mysql_fetch_array($resultc);
9 H* \- p0 U# B+ R1 [$num=$rsc[0];
4 m. d) C: i8 O3 F( D, G1 v! ~7 I0 v m5 c- H
这样可以得到记录总数
9 M/ |! s' h- eceil($num/10))如果一页10记录的话,这个就是总的页数% U; J: z( |1 g: a9 D m& p8 i
所以可以这么写 G' z) w% E2 G1 A% }) W' T
if(empty($_GET['page']))5 y) M! ?7 c3 r4 v5 D
{+ c% M( K( z; D+ C i
$page=0;
& l9 x X! N1 d7 i7 k}
+ T, g$ a: V. x0 g* s' [else
7 m# I" n3 g: D! l' X& N/ D2 h{
, s6 Z, ^7 l w' A, i0 w$ y$page=$_GET['page']; S- T3 P6 S5 i' \3 e7 \; |
if($page<0)$page=0;
- I! X' y$ L1 B& X8 S2 Tif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-11 R8 Q: H) s1 Q: }' k, |6 k3 H
}
2 t- o- D4 `7 i
, X' N! ]1 H% \. W这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
& r- G3 E1 y; w/ P; U//一页是10记录的& m! R) Y" ? C) Z5 Y8 r B$ I
最后我们需要做的就是几个连接:
4 q" \+ F% P8 N# p' k( v/ i<a href="xxx.php?page=0">FirstPage</a> 2 E, V% W! s% S& E" Q& o
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> $ U g9 T' y$ k" z( C4 p
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
: g: t; p n$ X% C( ]3 J<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>. k) v5 S/ k ?2 T7 I
: F) H+ f; a+ `
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|