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

十天学会php之第八天

* v$ ^3 F4 O! s
学习目的:做一个分页显示
6 z' r; r6 E: P) m关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num0 h- O. G6 [, ~4 s7 c* K
" H( |( b/ ^) J( [3 C6 O
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
$ N6 k+ W) K# P2 q
9 b" U  U) a0 n6 t
$execc="select count(*) from tablename ";4 z0 S4 V: K9 D& n! h
$resultc=mysql_query($execc);
& Q* v7 T) _& s. G  {9 Q" x$rsc=mysql_fetch_array($resultc);5 m9 h# g! Z. K9 M& C
$num=$rsc[0];
4 s, _4 G4 Y5 M( F" ~) h; W6 W- D9 j4 y$ {
这样可以得到记录总数
5 ~/ M+ S/ r  ]* h. o9 }ceil($num/10))如果一页10记录的话,这个就是总的页数! ~- u& d6 _0 J9 K
所以可以这么写) [% y+ A! c) j: \3 g* L7 |
if(empty($_GET['page']))) r& |+ X  |$ u& b
{" {0 ]8 m( r) F, C( {
$page=0;0 @  i( {7 x& O& R9 U+ y
}  d2 z$ z2 v7 k/ I6 Q: V
else
- t  q. S' L6 v/ N! S; z) q{
- k) F( x9 ^0 Y9 o8 {/ _# y( F$page=$_GET['page'];1 g. E% D/ ?& I1 o; Q, V8 W# s- {3 E
if($page<0)$page=0;! Y- Y" \7 L% u& o* I8 a  [# _
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
: g. @7 ]7 C7 B- X2 ~  u" Y3 r6 m} 2 y* R+ [: Q: [$ O6 n7 s8 m$ f
  s% ^' o) m" o; b; f* N" R
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";# a2 M, S  k4 N& j$ m5 j
//一页是10记录的
5 j4 ]- U: {9 R, A1 ?
最后我们需要做的就是几个连接:
% R. x$ n5 N( Q8 C$ }<a href="xxx.php?page=0">FirstPage</a>
( T1 A$ \, E2 C  _2 `4 B' P; p<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
7 P) W, V% C$ @7 [/ \  _: D! s<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
' }8 |" E  y& f( J0 S, z! ^6 X<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>! b2 ?% D- @$ T/ x" Y6 n; _

0 w% L/ `: l+ |# z* w( Y% b# K, {* ^
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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