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

十天学会php之第八天

$ @- K5 E& F  v% h- l1 F
学习目的:做一个分页显示
9 d6 D9 o0 D, P$ o; f& D关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
3 g  F" c6 {5 e$ ~9 ?& Q  f) w2 I" e
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

  H  ~2 G. y& u- t2 w4 Y8 ~% G9 K
$execc="select count(*) from tablename ";
) ^- L! ]" x! c- ^8 R  T$resultc=mysql_query($execc);
3 ?, G  M6 U2 U. o1 q, s$ K$rsc=mysql_fetch_array($resultc);
! O( J" @; D2 T( f0 S$num=$rsc[0];
/ t% g. m: q8 E8 k$ d0 [& }+ ?( h) a0 D. n; B
这样可以得到记录总数7 a3 h+ [7 c4 y; J
ceil($num/10))如果一页10记录的话,这个就是总的页数3 `2 Q5 P7 R; Z# A9 |( ?
所以可以这么写
/ r2 S2 n4 G9 Z( Z8 b- mif(empty($_GET['page']))
% |" F/ _6 O& r- l{. H1 M& ~, G) S
$page=0;" K7 L5 H" k2 a* [& m  S8 x
}
$ m. ~& x+ l5 j& \7 W& H+ F( O3 Helse$ C& ^- C: G8 W
{0 H5 d2 r8 l' v( {) p
$page=$_GET['page'];- b. T3 ]& U3 |2 U' H1 J& `0 v
if($page<0)$page=0;5 g; y5 A7 l. N: X3 z: s
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1! Y" z# Y' C" k) [6 k/ z* R% s
}
7 H/ Y7 v6 i9 x
/ n* L; e/ B* w/ L3 J这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";, d9 x  x( B4 m' o$ _& i
//一页是10记录的

9 v) ?9 D- l5 \8 L  r1 R2 m最后我们需要做的就是几个连接:
/ r; k/ t9 K7 k) }; q<a href="xxx.php?page=0">FirstPage</a> 5 ^9 M2 L& ?* u/ R
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
+ q( o. n/ S- o5 i4 ^, l- b<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
1 d, m" l: Q/ U. i9 y<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>, a6 {9 s- ]  d7 r' Q  H4 Q7 S( w( P
3 C7 Q5 e2 }+ m7 y, T
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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