有必要用一个二维数组来读吗?
你可以用数据库的limit来分页处理!!
你可以用数据库的limit来分页处理!!
解决方案 »
- bios和驱动器的区别
- php的一些比较深的问题
- PHP的问题。。高手来看一下
- 循环执行执行不了。
- 正则判断 是否为网站链接地址
- 请问php里怎么把数值类型的变量转化成字符型变量?
- 大家认为我是花150买两年50M的PHP空间合算还是花200买两年100M的ASP空间合算
- 10.0.0.10/phpmyadmin/index.php时,报如下错误,什么原因,如解决解决
- 请问,我怎么才能通过php来显示其所在目录下的所有文件呢
- 这样的需求求一个好的数据结构
- apache 提示You don't have permission to access /< on this server怎样解决
- 非常急的一个问题!老兄们快来解决啊!
主要问题是我刚学php,还有很多地方不太明白,像你说的limit,我就不会用,你能不能说的更详细一些。
select *from shijian limit 0,3
这个就是显示从第一条到第三条记录
select *from shijian limit 3,3
这个就是第二页从第四条到第六条,依次类推,就可以实现分页了关于limit后面的两个参数如何计算出来你可以用
从第几条开始 = 当前页数*每页显示数-每页显示数;
连接数据库
$page_size=3; //(每页显示3个)
if($page<=0)
{$page=1;}
$nums=mysql_num_rows($result);
$page_count=ceil($nums/$page_size);
$offset=($page-1)*$page_size;
$a="select * from shijian order by date desc limit $offset,$page_size"; //(按时间排序)
$result=mysql_query($a) or die("浏览失败");
$prevpage=$page-1;
$nextpage=$page+1;
echo "目前留言板上共有".$nums."条留言,本页列出了第".$offset."至".$page_count."条\n"."<br>"; //($page_count这个变量怎么不变呀,老是显示3,怎么才能让它跟着变呀)
if ($page<=1)
echo "第一页"." | ";
else
echo "<a href='$PATH_self?page=1'>第一页</a>"." | ";
if ($page<2)
echo "上一页"." | ";
else
echo"<a href='$PATH_self?page=$prevpage'>上一页</a>"." | ";
if ($page+1>$page_count)
echo "下一页"."<br>";
else
echo"<a href='$PATH_self?page=$nextpage'>下一页</a>"."\n<br>";
while ($array=mysql_fetch_array($result))
{
echo $array['delid']."\n";
echo $array['yonghu']."\n";
echo $array['mima']."\n";
echo $array['email']."\n";
echo $array['info']."\n"."<br>";
}
?>显示的结果如下:(第一页的结果)目前留言板上共有8条留言,本页列出了第0至3条
第一页 | 上一页 | 下一页
8 ffff [email protected] 第八个例子
7 dsa [email protected] 第七个例子
6 00000 [email protected] 第六个例子 第二页的结果:目前留言板上共有8条留言,本页列出了第3至3条
第一页 | 上一页 | 下一页
5 123 [email protected] 第五个例子
4 wangwu [email protected] 第四个例子
3 lisi [email protected] 第三个例子 第三页的结果:目前留言板上共有8条留言,本页列出了第6至3条
第一页 | 上一页 | 下一页
2 maroulong [email protected] 第二个例子
1 zcy [email protected] 第一个例子
if($page_count>$nums)
$page_count = $nums;
{
for ($i=($page_num-1)*$max_rec;$i<$page_num*$max_rec;$i++)
{
if ($i>=count($result)) break;
$page_rec[$i-($page_num-1)*$max_rec] = $result[$i];
}
return $page_rec;
}function get_page_infor($page_num,$max_rec,$result)
{
$page_infor = "<center>共<font color=red> ".count($result)." </font>条记录,每页<font color=red> ".$max_rec." </font>条记录,当前是第 <font color=red>$page_num</font> 页</center>";
echo $page_infor;
return true;
}function get_jump_interface($page_num,$max_rec,$result,$url)
{
if (count($result)%$max_rec == 0) $maxnum = count($result)/$max_rec;
else $maxnum = ((int)(count($result)/$max_rec))+1;
echo "<br><form name='pag' method='get' action =$url>";
if ($page_num!=1)
{
echo "<a href=",$url,"page_num=1>第一页</a> ";
echo "<a href=",$url,"page_num=",$page_num-1,">前一页</a> ";
}
else echo "第一页 前一页 ";
?>
<select name=page_num onchange="pag.submit()">
<?
for ($i=1;$i<=$maxnum;$i++)
{
echo "<option value='$i'";
if ($i==$page_num) echo "selected";
echo ">$i</option>";
}
?>
</select>
<?
if ($page_num!=$maxnum)
{
echo " <a href=",$url,"page_num=",$page_num+1,">后一页</a> ";
echo "<a href=",$url,"page_num=".$maxnum.">最后一页</a>";
}
else echo "后一页 最后一页 ";
echo "</form>";
return true;
}
第二页的结果是:目前留言板上共有8条留言,本页列出了第3(我想让这个变成4)至6条
第三页的结果是:目前留言板上共有8条留言,本页列出了第6(我想让这个变成7)至8条 而且最后显示的那页的"下一页"链接,还能链接,本应该显示出最后一页就应没了,这个的显示结果是:目前留言板上共有8条留言,本页列出了第9至8条 (其时已经没有记录了)
(这样就能一直链接下去,这个9会每显示一页自动加3,如:12、15、18这样的变,8是不变的)我都做好几天了一直没通过,急死我了……
是从第一条开始列出四条
limit 3,4 就是从第四条开始列出四条
所以你在显示的时候如果直接显示$offset 那肯定是少1的所以你要在显示从第几条到第几条的时候加1if ($page+1>$page_count)
echo "下一页"."<br>";
else
echo"<a href='$PATH_self?page=$nextpage'>下一页</a>"."\n<br>";这样处理很显然是不对的你可以先用$num = mysql_query("select * from shijian");
先返回一个总数然后计算出总页数$pages = ceil($num/$page_size);
然后就简单了$page比$pages下小的允许点下一页不然就不允许喽!!