返回列表 发帖

十天学会php之第八天

! 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之第八天就说到这里,第九天说一下一些注意的问题。

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