php分页问题-在WIN主机完全正常,到LINUX主机上就出了问题
我用的PHP分页程序,一直在WIN主机上用,已经用了多次,都没有任何问题,但现在放到LINUX主机上就出现了问题:例如一共分3页,正常应该是点击“2”的时候,到第二页,“...
我用的PHP分页程序,一直在WIN主机上用,已经用了多次,都没有任何问题,但现在放到LINUX主机上就出现了问题:
例如一共分3页,正常应该是点击“2”的时候,到第二页,“1”“3”带连接,“2”连接消失,以此类推,但现在的问题是,无论你点第几页,查询出来的是对,但是始终是“1”没有连接。(例如,点击“3”应该是,“1”“2”有连接,“3”没连接,但现在仍然是“1”没连接。)
说的有点乱,呵呵。我的分页程序
<?
//分页函数
function genpage(&$sql,$page_size=2)
{
global $prepage,$nextpage,$pages,$sums; //out param
$page = $_GET["page"];
$eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "select count(*) as ids ".$pagesql;
$conn = mysql_query($pagesql) or die(mysql_error());
if($rs = mysql_fetch_array($conn)) $sums = $rs[0];
$pages = ceil(($sums-0.5)/$eachpage)-1;
$pages = $pages>=0?$pages:0;
$prepage = ($page>0)?$page-1:0;
$nextpage = ($page<$pages)?$page+1:$pages;
$startpos = $page*$eachpage;
$sql .=" limit $startpos,$eachpage ";
}
//显示分页
function showpage()
{
global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function
$shownum =10/2;
$startpage = ($page>=$shownum)?$page-$shownum:0;
$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;
echo "共".($pages+1)."页: ";
if($page>0)echo "<a href=$PHP_SELF?page=0&$queryString>首页</a>";
if($startpage>0)
echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."&$queryString>«</a></b>";
for($i=$startpage;$i<=$endpage;$i++)
{
if($i==$page) echo " <b>[".($i+1)."]</b> ";
else echo " <a href=$PHP_SELF?page=$i&$queryString>".($i+1)."</a> ";
}
if($endpage<$pages)
echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."&$queryString>»</a></b> ... ";
if($page<$pages)
echo "<a href=$PHP_SELF?page=$pages&$queryString>尾页</a>";
}
?>
<?php
$sql="select * from news order by nid desc";
genpage($sql);
$conn=mysql_query($sql,$connec);
while($rs=mysql_fetch_array($conn)){
?>
中间输出内容,省略了……
<?php
}
?>
<?php
showpage(); //显示页
?>
<?php
mysql_close();
?> 展开
例如一共分3页,正常应该是点击“2”的时候,到第二页,“1”“3”带连接,“2”连接消失,以此类推,但现在的问题是,无论你点第几页,查询出来的是对,但是始终是“1”没有连接。(例如,点击“3”应该是,“1”“2”有连接,“3”没连接,但现在仍然是“1”没连接。)
说的有点乱,呵呵。我的分页程序
<?
//分页函数
function genpage(&$sql,$page_size=2)
{
global $prepage,$nextpage,$pages,$sums; //out param
$page = $_GET["page"];
$eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "select count(*) as ids ".$pagesql;
$conn = mysql_query($pagesql) or die(mysql_error());
if($rs = mysql_fetch_array($conn)) $sums = $rs[0];
$pages = ceil(($sums-0.5)/$eachpage)-1;
$pages = $pages>=0?$pages:0;
$prepage = ($page>0)?$page-1:0;
$nextpage = ($page<$pages)?$page+1:$pages;
$startpos = $page*$eachpage;
$sql .=" limit $startpos,$eachpage ";
}
//显示分页
function showpage()
{
global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function
$shownum =10/2;
$startpage = ($page>=$shownum)?$page-$shownum:0;
$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;
echo "共".($pages+1)."页: ";
if($page>0)echo "<a href=$PHP_SELF?page=0&$queryString>首页</a>";
if($startpage>0)
echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."&$queryString>«</a></b>";
for($i=$startpage;$i<=$endpage;$i++)
{
if($i==$page) echo " <b>[".($i+1)."]</b> ";
else echo " <a href=$PHP_SELF?page=$i&$queryString>".($i+1)."</a> ";
}
if($endpage<$pages)
echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."&$queryString>»</a></b> ... ";
if($page<$pages)
echo "<a href=$PHP_SELF?page=$pages&$queryString>尾页</a>";
}
?>
<?php
$sql="select * from news order by nid desc";
genpage($sql);
$conn=mysql_query($sql,$connec);
while($rs=mysql_fetch_array($conn)){
?>
中间输出内容,省略了……
<?php
}
?>
<?php
showpage(); //显示页
?>
<?php
mysql_close();
?> 展开
展开全部
主要是没有把$page全局化,下面的两行:
global $prepage,$nextpage,$pages,$sums; //out param
$page = $_GET["page"];
修改为一行:
global $page,$prepage,$nextpage,$pages,$sums; //out param
在下面的语句:
genpage($sql);
之前添加两行:
if (isset($_GET["page"]))$page = $_GET["page"];
else $page=1;
global $prepage,$nextpage,$pages,$sums; //out param
$page = $_GET["page"];
修改为一行:
global $page,$prepage,$nextpage,$pages,$sums; //out param
在下面的语句:
genpage($sql);
之前添加两行:
if (isset($_GET["page"]))$page = $_GET["page"];
else $page=1;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询