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

十天学会php之第八天

' D: U  q' v& D% e% F2 x3 L
学习目的:做一个分页显示
; N( @; \+ t& d: b关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
7 F8 r% k0 s; e# o. A! C9 ~
) ^7 \4 q8 {4 n% r- f! s2 \: W对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

" w1 z. Q+ n" g# b# J% P* l: H8 l* `, U8 p) t! @, c% s
$execc="select count(*) from tablename ";
2 ~9 \6 o2 ^3 \- |2 Q! W2 G$resultc=mysql_query($execc);
5 _4 [( K5 T0 v, A$rsc=mysql_fetch_array($resultc);: b' F. }  k5 v4 ^# X8 j
$num=$rsc[0];' W' [; l5 Q0 x) w
9 F  z% H% j) R0 `
这样可以得到记录总数
" H. E. E9 Q/ C# Gceil($num/10))如果一页10记录的话,这个就是总的页数
4 e+ N2 J6 c, @3 l9 P所以可以这么写2 z3 O; Z3 w8 [( H3 K
if(empty($_GET['page']))
+ B; B6 A# N: |' y/ v1 Q( S/ N{
) U, [1 H* ]$ {; Y' _3 G$page=0;8 Y/ P1 d( `6 U4 v* E2 n* \0 f. k5 C' T
}
8 I# _$ b, \$ n2 Felse) m. N& S, R8 d& h% L; e
{# C. t  `$ J3 V- b. O" w0 G
$page=$_GET['page'];. T( _1 q3 Z2 f  K- O& O$ L" }
if($page<0)$page=0;- \" z) C  v6 E$ C" }" k
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-15 i; O! S$ A0 `
} ) J; I3 B- a6 {+ a/ P( |8 l

' h/ N5 K  X  L# ?0 K1 U这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
: c2 H6 i$ |: P! D5 B5 W) Z//一页是10记录的
! w, O$ I! {) B6 }$ v' ]# _# ]0 }
最后我们需要做的就是几个连接:
1 H$ y- _) c/ F% C<a href="xxx.php?page=0">FirstPage</a>
6 d# ~4 x( G- H<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
* k6 u# F+ R) S; h4 P  _9 |+ Q<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
2 F* \# x( y$ T% J<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>8 b' Z/ r2 q3 p, p
  u! u/ x# ~, [* ?7 e
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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