求救:PHP显示MYSQL里的记录,怎么老是少一条?

求救:PHP显示MYSQL里的记录,怎么老是少一条?我的程序如下:

<?php
$conn=@mysql_connect("localhost","root","apmsetup") or die("由于网站正在更新,服务器连接不成功!");
?>

<?php
//=======================================分页显示
$pagesize=10;//每页10条
if(mysql_select_db("zbjsz",$conn)) {
$tsql="select id,name,qq,phone,email,content,date from LIUYAN order by id desc";
$result=mysql_query($tsql,$conn);
} ;
$tiaoshu=mysql_num_rows($result);//总记录条数
$pages=ceil($tiaoshu/$pagesize);//总页数
$last_pagecount=($pages-1)*$pagesize+1;
//$topage为跳转到的页面数,$pages为总页数
if(isset($topage))
{
if($topage<=$pages)
{
$pagecount=($topage-1)*$pagesize+1;
}
else
{
$pagecount=$last_pagecount;
}
}
//判断参数是否传来,如没有就用默认值1,[这里有问题吗??]
if(empty($pagecount))
{
$pagecount=1;
}
?>

<?php
//到库中查询数据
$tsql="select id,name,qq,phone,email,content,date from liuyan order by id desc LIMIT $pagecount, $pagesize";
$result=mysql_query($tsql,$conn); //查询结果赋值给变量result

//显示查询结果 ****************************************

//*******************************************************
?>
<?php while($rs=mysql_fetch_array($result)) { ?>

<?php echo "$rs[name]";?><br>

<?php };?>

<?
//判断是否显示显示前一页的链接
if($pagecount)
{
$prepagecount=$pagecount-$pagesize;
if($prepagecount>0)
{
print "<a href=$PHP_SELF?pagecount=$prepagecount>上一页</a>";
}
}
//下一页第一条
$nextpagecount=$pagecount+$pagesize;
//检查是否最后一页
if(($pages>1)&&($nextpagecount<$tiaoshu))
{
print "<a href=$PHP_SELF?pagecount=$nextpagecount>下一页</a>";
}
//当前第几页
$mypage=ceil($pagecount/$pagesize);
?>
<a href="<?=$PHP_SELF;?>?pagecount=<?=$last_pagecount;?>">尾页</a>
<?=$mypage;?>
/
<?=$pages;?>
页 共
<?=$tiaoshu;?>
条记录 </div></td>
</tr>
</table> </td>
</tr>
</table></td>
</tr>
</table>
在库里写好了三条记录,只显示出第一条和第二条,有四条记录的时候,显示三条,总是少最新放进去的那一条,刷新了也不行。很奇怪!

你这个分页算法思路超级乱。。我看了半天都不知道哪个是页码变量。。不过有一点是肯定的。。你的每个值都加了1。见以下代码:

$last_pagecount=($pages-1)*$pagesize+1;
$pagecount=($topage-1)*$pagesize+1;
$pagecount=1;

跟据你的写法。当第一页的时候。MYSQL 语句最后就是这样的结果:

order by id desc LIMIT 1, 10;

而查询偏移量是从0开始的。你这个句语最终被解释为:

倒序返回,从结果的第二条开始。往后十条。

也就是说,如果你有10条数据。ID是 1-10,倒序以后是 10-1 ,而MYSQL 从第二条起,也就是9-1之后没有了。当然就少了一条。。。

修改:把你所有的+1去掉。如果没有值传来。初始化为 0。

补充:关于数据偏移量,和数组一样。默认索引是从 0 开始的。而不是从 1 开始。即:索引0的那条数据,ID是1;索引1的那条数据ID是2。以此类推。。请不要认为那个就是ID值。。
温馨提示:答案为网友推荐,仅供参考