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

十天学会php之第八天

, i8 Y5 \, J8 {0 |
学习目的:做一个分页显示
, {. C' e* S! W4 j/ L+ e( Z. a! Q: ^关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
: }# x+ c$ r& @% g- y9 \' k# `5 |( W
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
! W5 V7 `2 V4 S4 i7 N6 K% L

# }" Q4 N, e& U9 c) P$execc="select count(*) from tablename ";
8 y' H4 J! [2 E2 {! x) ]  M) q$resultc=mysql_query($execc);
. \$ f4 g+ T. ^$ m$rsc=mysql_fetch_array($resultc);; D8 x3 w/ R- E9 `0 Q# B  L) s* l
$num=$rsc[0];
8 h' a# }" f$ x
4 @$ G: \3 \, ]0 d) d1 E
这样可以得到记录总数
  m- d  j; o0 u3 O- r0 pceil($num/10))如果一页10记录的话,这个就是总的页数
( r( E! H. Q1 X7 @. l  D& l, ?1 n所以可以这么写, q) X/ _! \# T3 d
if(empty($_GET['page']))* `! T4 {8 S( L6 L3 n
{
6 \2 ~6 [  Q  T# J; L) M$page=0;
8 V# _0 t! ]" X}% W  v3 I" l+ m0 G+ [- t1 j
else
( E# k" O7 i" A+ I1 x& ^* c1 L* A{
6 I$ O( n) ?& F+ X4 Q$page=$_GET['page'];6 [2 ~; s* x; Y' h$ M" g
if($page<0)$page=0;
6 T( {0 R0 j5 k1 \) Lif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
6 O& o0 Z5 ^: c( G, l5 |5 E- w} 7 O- v* M2 b8 r. x

6 ~, }- z/ r2 `, z) d  f这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
( K. ^+ [) e2 ]. ^3 @//一页是10记录的

4 Z# d$ J; o. O9 S8 [最后我们需要做的就是几个连接:: ~1 ]6 m4 J, T% J6 v/ D$ M
<a href="xxx.php?page=0">FirstPage</a>
9 j4 B  p1 W( V4 V& G2 P<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
) v& U! [2 U* ]2 v  h<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 6 v. r1 {( {! L, V, E+ `
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
) G7 ?- `# J+ t$ K" u8 [
' [; Q6 b2 G7 ]3 A
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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