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

十天学会php之第八天


) x7 R; b* C4 \# D+ {, V4 K学习目的:做一个分页显示/ H' ~4 G* m3 Q7 Q
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
" b- ]9 x$ p! H5 k% a6 b% P$ \$ e" l$ h" `/ b
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

7 o) k! k1 x% b: m( B: P. T6 K
# `" Y' }/ P* V8 v( ~/ x3 s+ O- A- r: j$execc="select count(*) from tablename ";
9 Q; X( s& N$ E) ?. @$resultc=mysql_query($execc);9 J( T" z- ^& S) I' z6 V, O- Q# S
$rsc=mysql_fetch_array($resultc);. [7 D% h( s, Z' m, I- |  l
$num=$rsc[0];
) `! _! I$ u4 @1 U" b! L0 g. L7 T- B7 e% q' _
这样可以得到记录总数( u+ q, S% m: I
ceil($num/10))如果一页10记录的话,这个就是总的页数
7 j. [5 R! v2 V3 C$ Y; w' P所以可以这么写: ]2 B7 @0 \' b
if(empty($_GET['page']))7 H/ n$ j" Y0 t5 F+ t
{
. K3 o2 r: ^) @4 ~/ t7 f" R$page=0;
; W! B7 N! ?  l) g, U2 y' T9 V$ ?}  R/ R/ c9 [4 u3 u, Q# |, g( `- @
else7 M# T/ `0 ^: H+ N# E2 X. _! A6 x
{
& \- R) q- X4 p# _. Q' [& Q$page=$_GET['page'];
5 P0 S" R. [$ n' h$ Z0 p4 j; Q* sif($page<0)$page=0;' G+ l5 c# e- U% L* Y% U
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1% l/ J0 c0 w* Q8 I: E' v7 Q
} : r4 H3 V- ]- i$ l; r! E

' a4 R8 s, D, k( R0 v- Z这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
; v" `& q$ _3 G% k- n- j//一页是10记录的

# X, R1 ]( V* {4 q3 \9 P最后我们需要做的就是几个连接:
/ R7 i: Z4 Z+ l9 U" d- r<a href="xxx.php?page=0">FirstPage</a> " L2 O" \  l- b8 {. N- i1 h
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> # S5 z* b. x. D; a
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 5 G9 ?; p: {5 n' B/ k
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>+ W0 I! n' T/ n  q

( r; N+ I+ N4 Y, y
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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