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

十天学会php之第八天

  T# _$ U3 t$ J5 E  M
学习目的:做一个分页显示' E0 g, X  `8 T
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
2 l& \' f, Z: R# u# z& y# x- V+ L. ^# s1 Q
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, B! {; z8 C  x

/ _, U: F6 z* Y4 p' F5 q$execc="select count(*) from tablename ";, V" `% p6 M/ B" J$ ]+ j' c$ U
$resultc=mysql_query($execc);
2 j- r8 }6 }0 u, n/ ~+ C$rsc=mysql_fetch_array($resultc);. K  {& a; E8 h
$num=$rsc[0];/ u- N- y, ?" \9 e6 X
# V1 C! _3 f: Z( ?" Q
这样可以得到记录总数4 Y" p$ Z6 a" i+ Q- U
ceil($num/10))如果一页10记录的话,这个就是总的页数7 x% n5 S4 v. x/ U
所以可以这么写& S: J  x$ U" K, J/ l' O$ l
if(empty($_GET['page']))
  r9 d" G* {+ O{* g5 ^3 {' f9 z# E, T
$page=0;
7 q: v: v* U- r% W) h}- |! Q  T8 f( e, o& k2 y
else
# T, N2 J6 r& n( \{2 {& `4 q0 I$ ~$ `/ P  e
$page=$_GET['page'];
4 {5 F+ L/ C6 g8 M/ ?3 _if($page<0)$page=0;
2 {- D- b: k' {* d: g; j$ pif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
' W/ Q" }! }  y  h1 R* D}   v( v/ {# K- ~, t7 p8 O6 A
: z* e; y0 }, p8 ^7 e+ m+ v* `. }
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
5 S( G4 c/ ~' t5 e; }) o//一页是10记录的

( n; Y% o( d$ [9 O: F4 ?/ W最后我们需要做的就是几个连接:
' R' E4 H: ^' m. z8 [( R. L/ B<a href="xxx.php?page=0">FirstPage</a>
0 Z. F$ j+ c: Q# Z<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> + Y( i0 p2 a; @6 a0 j9 t  u
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ' C' U$ P9 B9 `
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>9 d/ s$ H- J$ x0 C( Z0 x8 P8 B

9 T% u7 b, X: H
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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