返回列表 发帖

十天学会php之第八天

& S. F/ H  z6 Q' `4 h
学习目的:做一个分页显示
7 q% X$ Z, p" S! c' P  _& v9 r& Z* l关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num: P6 [' `4 l# v

6 L7 l& h  c" C& l对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

0 Y( a# m0 ]  y# p0 b
- g& a2 z0 S, y' i+ {9 j0 Z$execc="select count(*) from tablename ";2 \* {) E- j. M9 `/ z3 T
$resultc=mysql_query($execc);* X0 i5 o, ~# \
$rsc=mysql_fetch_array($resultc);$ G! O/ r  x! X" Z2 j) d8 F
$num=$rsc[0];4 G/ Z* [/ @6 O0 H3 u

- [8 D+ X$ p  N& S5 l! A0 _' }- ]- }
这样可以得到记录总数1 @. x8 B/ {# E
ceil($num/10))如果一页10记录的话,这个就是总的页数
! d" G/ T  R7 I* `所以可以这么写# K. d& d/ q! m5 C' `
if(empty($_GET['page']))+ B8 V. c! T8 Y& u
{
+ @/ K) R; T$ `& s/ u( r2 r! X$page=0;
% O; @) ]: _5 I! a: Y}
2 l4 C, U- b' V5 Oelse' R8 V  s; o* G# x* B, l8 z
{
" b! @! {- C7 z. b9 H- E; b$page=$_GET['page'];
7 Z: U' N$ N0 @- pif($page<0)$page=0;0 U' i& j, h& Q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
1 s$ L6 M0 F$ a  \4 `7 l/ F  g} 4 [- w! I2 h8 A0 m- }

( t/ t* M. D2 R  B2 S/ L# U/ o这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";" J: S# _. T/ C+ c+ N7 U+ S
//一页是10记录的

. C7 }% ?' a0 N$ Z8 b7 x0 |最后我们需要做的就是几个连接:
0 d$ n+ y8 y7 t2 ~; V% b3 T<a href="xxx.php?page=0">FirstPage</a> * t+ E& E7 @' O2 W. R
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 9 m# y' W) y! z7 i0 q9 F
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> & ^$ [* Z6 i$ f! K
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>6 u* H3 n( u! r; d* o# a
- P" n9 I3 t; J8 B% ?1 D! E" A& e6 x
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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