我在类文件中的方法有问题:
public static function getPageLeft($pid)
{
self::_dbConnect();
echo "now " .$pid;
$pid--;
echo " after ". $pid;
$data = mysql_query("SELECT id FROM evening_pages WHERE id='".$pid."'") or die(mysql_error());
$rows = mysql_num_rows($data);
if($rows == 1){
echo " in ";
return $data;
}elseif($pid != self::getMinPage()){
self::getPageLeft($pid);
echo " Current: " . $pid . " min: " .self::getMinPage();
}
}
我在那里有回声仅用于调试,我得到:
现在 22 之后 21 现在 21 之后 20 当前: 21 分钟: 1
此代码用于查找数据库驱动的 CMS 中剩下的下一页,以防客户端从数据库中删除一行,它会找到下一个较低的值。
因此,您打开的页面 id 为 22,在数据库中查找 id 21,如果它不存在,它应该为行返回 0,然后继续并在 id 20 上重试,但有一个 id = 20 的条目。
有人发现代码有任何问题吗?
当它试图查找在当前页面之前不存在的页面时也会出现此错误,例如在第 22 页但没有 21 的 ID:
警告:mysql_fetch_array() 期望参数 1 是资源,在第 37 行的 /home/prelas/public_html/index.php 中给出 null
那里的代码(第37行是while):
$getPageLeft = sql::getPageLeft($pid);
while($row = mysql_fetch_array($getPageLeft)){
$pageleft = $row['id'];
}
非常感谢。
只是一个快速的编辑:“in”永远不会得到回应,但是当没有被删除的页面时,导航工作正常。
进一步编辑:使用代码的代码(如 37):
$navigation = '<div id="direction">
<span class="inNav"> <a href="index.php?pid='. $min .'"><<</a> <a href="index.php?pid='. $pageleft .'"><</a> </span><span class="black">•</span><span class="inNav"> <a href="index.php?pid='. $pageright .'">></a> <a href="index.php">>></a></span>
</div>'
所以你可以看到它在那里使用 $pageleft 但是当它处理空白页时,这个值是空的(空的)。