php sql语句/分页错误 帮看看这是会错的

include("conn.php");$results=mysql_query("SELECT*FROM`news`");$total=mysql_num_rows($... include("conn.php");

$results=mysql_query("SELECT * FROM `news`");
$total=mysql_num_rows($results);

_PAGEFT($total,5);

?>
<CENTER>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=??????">
<title>新闻标题1</title>
</head>

<body>
<table width="500" border="0" align="center">
<?
$result=mysql_query("select * from news order by datetime desc limit $firstcount,$displaypg");
while($row=mysql_fetch_array($result)){
?>
<tr>
<td><a href="html/<?= $row["newsid"].".html";?>" target="_blank"><?= $row["title"];?></a></td>
<td><?= $row["datetime"];?></td>
</tr>
<?php
}
?>

</table>
</body>
</html><br>
<?php
echo "<br>".$pagenav;

?>
</CENTER>

$result=mysql_query("select * from news order by datetime desc
——————————————————
| limit $firstcount,$displaypg"); |
——————————————————
有数据的时候没事··一条数据都没有的时候就出错了

删除这句也就没事了·为什么呢?

这是我的分页内容conn.php :

function _PAGEFT($totle, $displaypg = 20, $url = '') {

global $page, $firstcount, $pagenav, $_SERVER;

$GLOBALS["displaypg"] = $displaypg;

if (!$page)
$page = 1;
if (!$url) {
$url = $_SERVER["REQUEST_URI"];
}

//URL分析:
$parse_url = parse_url($url);
$url_query = $parse_url["query"]; //单独取出URL的查询字串
if ($url_query) {
$url_query = ereg_replace("(^|&)page=$page", "", $url_query);
$url = str_replace($parse_url["query"], $url_query, $url);
if ($url_query)
$url .= "&page";
else
$url .= "page";
} else {
$url .= "?page";
}
$lastpg = ceil($totle / $displaypg); //最后页,也是总页数
$page = min($lastpg, $page);
$prepg = $page -1;
$nextpg = ($page == $lastpg ? 0 : $page +1);
$firstcount = ($page -1) * $displaypg;

//如果只有一页则跳出函数:
if ($lastpg <= 1){
return false;
}else{
if ($prepg){
$pagenav .= " <a href='$url=1'>首页</a> ";
$pagenav .= " <a href='$url=$prepg'><<</a> ";
}else{
$pagenav .= " 首页 ";
//$pagenav .= " << ";
}

if ($nextpg){
$pagenav .= " <a href='$url=$nextpg'>>></a> ";
$pagenav .= " <a href='$url=$lastpg'>尾页</a> ";
}else{
//$pagenav .= " >> ";
$pagenav .= " 尾页 ";
}
}
//下拉跳转列表,循环列出所有页码:
$pagenav .= "<select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";
for ($i = 1; $i <= $lastpg; $i++) {
if ($i == $page)
$pagenav .= "<option value='$i' selected>$i</option>\n";
else
$pagenav .= "<option value='$i'>$i</option>\n";
}
}
展开
 我来答
cmoooo
2010-03-28 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:675万
展开全部
刚才错了,改一下:

删除这句?

如果你真的删了这句的话,你的分页也就不好用了。

原因是什么呢?

当一条数据都没有的时候,这个limit因为判断的关系会变成:LIMIT -1, 20

是这样吧?那么应该如何解决呢?下面是解决方案(我在你的程序中截取一段,你自己找找是哪里吧):

$url .= "?page";
}
$lastpg = ceil($totle / $displaypg); //最后页,也是总页数
$page = min($lastpg, $page);
$prepg = $page -1;
$nextpg = ($page == $lastpg ? 0 : $page +1);

$firstcount = ($page -1) * $displaypg; //问题就出在这一句上了。
if($firstcount < 0 ){ // 在这里,对它进行一下强行纠正;
$firstcount = 0; //如果真的是-1了,那它一定是没有内容才对,改成0也就不伤大雅喽。
}

//如果只有一页则跳出函数:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式