クラスファイルのメソッドに問題があります:
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を使用していることがわかりますが、空白のページを処理する場合、値は何もありません(空です)。