php中分页技术概述
<?php $link=mysql_connect("localhost","root","zp"); mysql_select_db("zp"); function showtable($taname){ $sql="select * from {$taname}"; $result=mysql_query($sql); $fields=mysql_num_fields($result); $rows=mysql_num_rows($result);//获取行数和列数 $num=10; //每页显示的个数 $total=$rows; //总记录数 $url; //每次请求的页面 $cpage=isset($_GET["page"]) ? $_GET["page"] : 1;//当前页 $pagenum=ceil($total/$num); //总页 $offset=($cpage-1)*$num;//从哪页开始取 $sql="select * from {$taname} limit {$offset},{$num}";//limit取几个 $result=mysql_query($sql);//覆盖上面的 $start=$offset+1; //开始记录数 if ($cpage==$pagenum){//当前页是最后一页 $end=$total; }else{ $end=$offset+$num; } //结束记录数 $next=($cpage==$pagenum) ? 0 : $cpage+1; $prev=($cpage==1)? 0 : ($cpage-1); echo '<table align="center" width="800" border="1">'; echo '<caption><h1>'.$taname.'</h1></caption>'; echo '<tr>'; for($i=0;$i<$fields;$i++){ echo '<th>'.mysql_field_name($result,$i).'</th>'; } echo '</tr>'; while(list($id,$name,$price,$num,$desn)=mysql_fetch_row($result)){ echo '<tr>'; echo '<td>'.$id.'</td>'; echo '<td>'.$name.'</td>'; echo '<td>'.$price.'</td>'; echo '<td>'.$num.'</td>'; echo '<td>'.$desn.'</td>'; echo '</tr>'; } echo '<tr><td colspan="5" align="right">'; echo "共<b>{$total}</b>条记录 , 本页面显示<b>{$start}-{$end}</b> {$cpage}/{$pagenum}"; if ($cpage==1){ echo " 首页 "; }else{ echo " <a href='{$url}?page=1'>首页</a> ";} if ($prev){ echo " <a href='{$url}?page={$prev}'>上一页</a> "; }else{ echo " 上一页 ";} if ($next){ echo " <a href='{$url}?page={$next}'>下一页</a> "; }else{ echo " 下一页 ";} if ($cpage==$pagenum){ echo " 末页 "; }else{ echo " <a href='{$url}?page={$pagenum}'>末页</a> ";} echo '</td></tr>'; echo '</table>'; mysql_free_result($result); } showtable('shop'); mysql_close($link); ?>
seek 指针的使用
<?php $link=mysql_connect("localhost","root","zp"); mysql_select_db("zp"); $sql="select id,name,price,num,desn from shop"; $result=mysql_query($sql); //var_dump($result); /*是个结果集*/ /** 一、从结果集中将记录取出 mysql_fetch_assoc($result) 返回索引数组(下标是 1 2 3 4) mysql_fetch_row($result) 返回关联数组(下标是 id name...) 看个人爱好 mysql_fetch_array($result) 上面两个都返回 mysql_fetch_object($result) 将一条记录以对象的形式返回 [一次从结果集取出一条记录] 用的指针 将指针移动到下一条记录*****mysql_data_seek($result,row); 再取就是下一条,,,没了记录就返回false 二、从结果集中将字段取出 行数,列数,从哪开始 **/ mysql_data_seek($result,3); while($data=mysql_fetch_object($result)){ print_r($data);echo"<br>"; } mysql_close($link); ?>