返回列表 发帖

十天学会php之第八天

0 z) d7 E* X4 }+ b5 ]
学习目的:做一个分页显示' V9 S; h( h6 k, W" j- Y) H1 F2 X% u
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num: s+ Z) r/ y5 E) M5 l2 C: \+ C9 n6 Q
0 c" ?) Z+ g6 p6 Q
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

4 [3 w4 K1 ~0 n% w' A" [- R; S7 p; D5 t8 H' X( C" S, L6 Q
$execc="select count(*) from tablename ";
. x/ c5 ]0 t- _$resultc=mysql_query($execc);
0 O% ]# a# u7 \3 A4 c0 |& V$rsc=mysql_fetch_array($resultc);5 \3 H; s( s& J  Y0 i5 ^7 G5 @
$num=$rsc[0];
% g1 N0 O. c9 ~8 i; T( z" Q$ B: o. l. K2 q/ L  P  z
这样可以得到记录总数
" S" I* r3 i) [+ j# `' Rceil($num/10))如果一页10记录的话,这个就是总的页数' m+ n( |3 ^$ s: I1 \1 i& K
所以可以这么写
9 d3 ]7 Y6 o+ o6 x& c! F0 ^1 dif(empty($_GET['page']))
% W9 ]0 i! I8 r' A$ |4 Z{
& t8 t9 W$ [' M6 p3 \6 L+ P$page=0;/ @9 i# B4 @. ?2 _
}) W( G- ?& z0 Y& f0 A) {6 V
else
* m! A, X3 R2 L: V{/ I3 }4 K# W; E2 o2 ^
$page=$_GET['page'];" P2 q  H6 a# D0 G* ^  T
if($page<0)$page=0;" \  I6 [. A) M* x! u0 Q8 d% E# W
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1* }/ |6 a, s2 v6 @$ R
} 9 F! B- O1 x  B3 x# S- i
6 Q% [+ u1 ]3 k# L3 n8 U( Z" J
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
6 N% N+ k; y4 \! M" E( ]/ x//一页是10记录的
, [8 u# \% v. p, P& m1 Q
最后我们需要做的就是几个连接:/ D$ K4 ]' }' W4 _9 R& ~- Y
<a href="xxx.php?page=0">FirstPage</a>
) r* w2 W; x0 Q* b0 R9 a; y<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 2 v/ F  M/ @6 G. _: m8 O
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 2 W% F7 v1 s( L' X/ |0 i( R: I
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>0 M# n$ q% A: [7 C/ N" L
5 k+ _# b( l- |  g' @1 W* a$ P- E6 O( ]
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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