|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
' H A0 n3 j# z' [
学习目的:做一个分页显示
' I! r: K! Y. G: e0 L$ O关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
" u, H8 D! _ K
8 E& G9 K: V8 y1 x; N1 d对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。2 J6 o2 v x* ?
H- C: N* e7 U8 u+ Z0 L1 |. z
$execc="select count(*) from tablename ";
- G4 y/ M; C! B+ t$resultc=mysql_query($execc); W6 f8 w& X- K V
$rsc=mysql_fetch_array($resultc);
5 M/ W% ~* F/ V4 e$num=$rsc[0];/ ]; ^! _/ S) l' I
7 ?+ }/ b: k% a1 f1 ?9 m4 t7 W
这样可以得到记录总数, L$ i3 X1 n8 n L, X1 r: Z$ F
ceil($num/10))如果一页10记录的话,这个就是总的页数
/ i7 h, H6 T% c" [所以可以这么写8 b, l" L3 L2 ?3 t7 K; k8 y" ~
if(empty($_GET['page']))" g0 Z, {& l& p, a
{
% I9 p2 c4 a0 W4 L3 J$page=0;
/ H: y$ n& ^: w3 o* ?) `}
) X+ @- ]: z" c3 m% I0 y% [8 telse
V$ ~0 F" G+ e) s: t* B. L2 B{
" `. Q$ t& m. U5 a {$page=$_GET['page'];
- {% P3 q$ j- Iif($page<0)$page=0;1 }+ |* ?, J0 l- Q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1; m. m! W% l) | B
}
. _8 k, U" z6 ?, i% s I# {0 u
' h; s- c; X& X: Q这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";' z9 O1 B8 }! j- k7 A
//一页是10记录的; m( N# z* T: b8 I! G. u/ {
最后我们需要做的就是几个连接:( D' d i# ~- h. N4 `- X( F
<a href="xxx.php?page=0">FirstPage</a> 6 f' x# a: i9 y
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
6 ~& w# A& p/ M/ S$ \/ Q<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> % o8 b: _- z. e6 i/ @
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
$ J( D! a/ p/ H" ?# Q: d Y, h O4 i+ ?" B" |/ f3 s( _
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|