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

十天学会php之第八天


$ E5 @1 Q5 F1 O/ w3 L学习目的:做一个分页显示
/ \9 [) s; Y: J5 K: @关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num8 c" E, s% B5 ~2 r  l% V* C3 f
. f- K- B9 |9 ^" d4 ?
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

1 ~( u7 m( M; ?% k( ?) R/ t# @# e; u. Q! d
$execc="select count(*) from tablename ";* k& w0 r3 O- n1 N
$resultc=mysql_query($execc);, ?: E2 u  Q2 X
$rsc=mysql_fetch_array($resultc);
1 E$ `  E" e  I" n$num=$rsc[0];
- B: P$ W. s- @. n/ A9 F1 y% O5 z( z) i! L
这样可以得到记录总数
+ G! G' C$ C  z' nceil($num/10))如果一页10记录的话,这个就是总的页数
0 Y  E1 N8 p0 V; ]7 J' |2 w& J所以可以这么写) k) i* G1 i# l+ d; W
if(empty($_GET['page']))
7 b# Y: r+ t9 q: P; ^  ^{
& `/ F! w9 c+ K0 n! s( V8 V; _2 g$page=0;& d' [( J" v2 ~( @9 t7 {0 U
}" m" C+ }  }) f, O
else
) A+ Y0 F+ v/ ~, g! X; f{/ I. V$ T9 @& V; _% U! i% `- S$ ^/ i4 |
$page=$_GET['page'];
9 ]; w7 f' r  {3 G  ^& u9 {! q8 o* jif($page<0)$page=0;! M7 u- E8 J$ a3 m3 c0 R
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1; }/ l: C. V2 F4 `/ [$ ], q7 @+ q
}
, ~# g; x' m. X; G5 `- g% V# l) d; F$ G
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
' c0 E; F8 \4 O- v0 Y//一页是10记录的

9 W1 Z- a7 w! Z3 w最后我们需要做的就是几个连接:+ o; h) N9 f5 w! h! h5 D
<a href="xxx.php?page=0">FirstPage</a>   W. l- @" L, |) c6 H; `
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
  Z$ ^" L( }8 E% Q4 A( ]<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
3 K1 T$ S' d/ i  d<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
2 w, n, a7 u7 v  {& Y. S! d5 s9 O: b/ s3 I7 g+ o( X. r8 n
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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