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

十天学会php之第八天

5 {6 |7 p0 E' L$ U1 {9 r. X% I
学习目的:做一个分页显示. C4 f1 N2 X2 p  h9 ]6 j# d
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
6 P+ r7 N( O& e8 \
8 G) n8 H. u- m/ y8 q+ z$ C对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

  c5 }4 C% F% E( E3 Q- y! ^1 z! K# P! C1 k" q: _
$execc="select count(*) from tablename ";
) m* i/ Y" c4 Z9 I5 X+ p) b7 v* _) k$resultc=mysql_query($execc);8 B0 p0 ]! O5 ]* Z9 y
$rsc=mysql_fetch_array($resultc);0 I! J* U* p" Z, {8 ]
$num=$rsc[0];, M" u0 G% Q, x/ c( |
1 n6 ^& w: w& d, {8 V
这样可以得到记录总数
* X" l2 ?( G7 R& ]% [ceil($num/10))如果一页10记录的话,这个就是总的页数4 }+ t: n# H7 t# m" F, r0 M- F
所以可以这么写
6 Z  G4 w& H$ o% uif(empty($_GET['page']))# {5 X8 Y5 c* A* R$ @
{
* B* k$ }  L% _* H$page=0;
% R1 g4 `6 @' W1 U}2 `6 `' d" D, I/ Z2 J
else
4 s" X6 N" n0 m{7 Y0 z9 o0 Y( l
$page=$_GET['page'];
  Y& z$ ^& y% E5 M5 a0 C, L: qif($page<0)$page=0;
+ ]! O8 @4 o" p4 O/ hif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-16 b- q1 @1 x6 m. @
}
2 k+ J3 R. V$ [, A8 U0 X3 ]" D% v& K/ I4 M: A0 m
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
9 C5 S" [$ r6 c; m# @//一页是10记录的
- Q- c% n0 M% Q+ `" \4 D# S
最后我们需要做的就是几个连接:
: C  U, V. J, _1 |/ h2 a<a href="xxx.php?page=0">FirstPage</a>
/ @& e! R+ ~5 v) f& B5 e, }+ V* K<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 9 Y4 x' i( B) `
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
7 d" h$ M, I% S& x2 s6 k( j  N<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
! g0 X' L$ C7 s4 u3 p5 A8 |' F2 p  o7 ~
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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