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

十天学会php之第八天

# x$ n  w0 u/ ?1 c3 E% M
学习目的:做一个分页显示7 L4 A# y( y  C) [5 j- V& p1 F( V8 N, c
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
. D1 E2 u; j3 X* c2 l1 o7 N5 N9 j9 K: V
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
$ z% h8 N3 y& a; D

/ F, y* g5 f- W6 Y  R$execc="select count(*) from tablename ";
+ j) l# W( D! ]" U+ c$resultc=mysql_query($execc);* i, c' h* i* T  J- H1 a
$rsc=mysql_fetch_array($resultc);
4 I( [- T6 U! k& F: D$num=$rsc[0];
" |' Q* r5 w$ X
+ r' {+ q( L& I3 f
这样可以得到记录总数
! T9 L' X4 U1 u8 ]ceil($num/10))如果一页10记录的话,这个就是总的页数
, A. Q& M2 V% p+ a& P) [4 B所以可以这么写$ p8 |' b8 n5 l5 q  t3 W: `7 A
if(empty($_GET['page']))' y$ F( P7 c0 n; B' g$ A
{
  A3 @) R7 L: a0 ]4 B$page=0;6 }5 A- m  {+ b6 H/ i
}
0 b6 g2 _: C. X+ Jelse
* A0 G: J! _) @8 F" w* l$ c{# G4 E) C* [# d- D8 |
$page=$_GET['page'];% s: F+ o6 J  p/ h/ f
if($page<0)$page=0;/ j: ~# L/ c9 Q0 U5 Q! [. W
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1! x( }$ s* @% ]  C
} $ S. ^' x. f* F7 F* `0 D
3 j: f1 \) \4 t2 Y" [
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
( q8 N% q- F* j5 V! e//一页是10记录的
4 [9 z, T; h7 I( V' A0 N7 P2 ]9 a) D
最后我们需要做的就是几个连接:2 t0 V! L  o+ z* A# G6 N7 _2 t
<a href="xxx.php?page=0">FirstPage</a>
9 X3 s3 j1 l2 L( r* n6 i$ a+ O<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
# ?3 X: \# `9 S2 C<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> + |5 z7 E8 r5 G; P; f4 J$ G. \) |  l
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>' B% r/ Q3 }- H
+ S* |- Q* B/ [5 P8 U
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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