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

十天学会php之第八天


8 X- o% D' E8 a1 t学习目的:做一个分页显示: J! b8 S' X: t/ j1 Y7 d
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num" J! n* e# y: X* r

5 X; w& y, \- @7 I4 c4 `/ {对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
6 B, D! T2 [0 p# i! H  _

2 q$ h; Z7 I6 C# e! ^$execc="select count(*) from tablename ";) O; a0 r: d# [0 i  K' ]& G- Y* h
$resultc=mysql_query($execc);9 f. t* n5 V% ?9 @2 E- W/ `
$rsc=mysql_fetch_array($resultc);/ c: e" m" c2 a9 E5 z3 D% ~
$num=$rsc[0];
' V6 ?( Q5 l5 z% o( M" n5 r- K/ e( ]1 `- f( T
这样可以得到记录总数
$ L' |& S" l- }+ x5 ^ceil($num/10))如果一页10记录的话,这个就是总的页数) Y; x& g% P  x4 S: A( N
所以可以这么写
- W4 v, ^) k( g7 b9 Cif(empty($_GET['page']))
3 B7 R# r8 h1 D* g{
& K- {9 S2 L* }7 ^- @$ A$page=0;
2 n/ G  J: J: _" s0 ~}9 v7 |, k5 O3 K$ X3 |
else( m, _; i% `, C& T
{
# C6 o! t4 ~( W, K  p* L$page=$_GET['page'];' O1 n- W* N: A9 L5 \; I4 V$ Q
if($page<0)$page=0;. J* o7 S% U. e9 a; O
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1" {9 o, i" q7 K
} ! [8 w0 u$ v5 i

  i! \2 L& n  |0 f这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
+ j1 }' R2 U$ o  `0 y4 v: v6 s0 M' Y//一页是10记录的
1 _- A4 T  Q) F3 ^3 J) \" K
最后我们需要做的就是几个连接:
& `4 a  y! P- }, @8 @" x' ]<a href="xxx.php?page=0">FirstPage</a> 8 P' W' T7 K( y0 [5 q
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
( X0 j3 M, @: R) k; h: g% f: A<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 8 E+ l" x, l7 x( y: o
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>8 {, Z) Q+ y9 E+ }% Z
' }4 h6 i& h# d
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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