PHP100 ビデオでページング原理の紹介を聞いていました。提供されたコードによると、実行後、ページの変更を実行できず、URLが表示されたままであることがわかりました。 page=2page=3page=4 など。その理由は、ereg_replace 関数がバージョン 5.3 で使用されなくなったためであることが初めてわかりました。preg_replace に変更してもまだ機能しません。専門家からの回答をお願いします。ありがとう。
コード:
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 = preg_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); page
$firstcount = ($page -1) * $displaypg;
// ページング ナビゲーション バーコードを開始します:
$pagenav = "ページを表示します ($totle ? ($firstcount +1) : 0) . " -" . min($firstcount + $displaypg, $totle)
// レコードが 1 つだけある場合ページ、関数から飛び出す :
if ($lastpg <= 1)
return false;
$pagenav .= " Homepage "; ($prepg)
$ pagenav .= " 前のページ ";
else
$pagenav .= " 前のページ ";
$pagenav .= " 次のページ ";
else
$pagenav .= "次のページ
$pagenav .= " 最後のページ ";
//ドロップダウン ジャンプ リスト、すべてのページ番号をループします:
$pagenav .= " ページへ ページ";
}
include("conn.php");
$result=mysql_query("SELECT * FROM ` p_newsbase`");
$total=mysql_num_rows($result);
//pageft()を呼び出し、1ページあたり10件の情報を表示します(デフォルトの20件を使用する場合、このパラメータは省略できます)、このページを使用しますURL(デフォルトなので省略) mysql_fetch_array($result )){
echo "
".$row['author']." | ".$row['title']
}
?
ディスカッションへの返信 (解決策)
それなら、もっと php100 のビデオを見る必要があります。
1. 関数 _PAGEFT の最後の行に return $pagenav; を追加する必要があります
2. 呼び出すときは、次のように $page = isset($_GET['page']) ? $_GET['page'] : 1;echo _PAGEFT(100);//你打算处理的总记录数
データベースなしでテストできます
モデレーターのおかげで、問題は解決されました。深く勉強していませんでした、ありがとう司会者 くそー、組織の気遣いを感じます、はは、ありがとう!今後もアドバイスをお願いしたいと思います!