ホームページ > バックエンド開発 > PHPチュートリアル > ページネーションの両方の設定に問題があると思います。

ページネーションの両方の設定に問題があると思います。

WBOY
リリース: 2016-06-23 13:58:37
オリジナル
1020 人が閲覧しました

<?php$offset = isset($_GET['pid'])?intval($_GET['pid']):1;if(!$offset) $offset = 1;$perpage = 50;$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);$sql = 'SELECT * FROM library.messages'." LIMIT $perpage OFFSET ".($offset-1);$result = $db->query($sql);if ($result){	foreach ($result->fetchAll() as $row)	{		echo "subject:    ".$row[5]."<br />";	}}else{	$error = $db->errorInfo();	echo "error happened..".$error[2];	exit();}buildIndex($perpage, $total);//1,50,3500/////////////////////////////////////////////////////////////////function buildLink($index, $offset){	echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?pid = $offset'>$index</a>";}function buildIndex($perpage, $total){	$separator = '|';	//buildLink($offset==1, '<<Prev', '')	for ($start = 1, $end = $perpage; $end < $total; $start += $perpage, $end += $perpage)	{		echo $separator;		buildLink("$start-$end", $start);	}	$end = ($total > $start) ? "$total":"";	echo $separator;	buildLink("$start-$end", $start);}?>
ログイン後にコピー


別の考え方…
<?php$offset = isset($_GET['pid'])?intval($_GET['pid']):1;if(!$offset) $offset = 1;$perpage = 50;$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);$sql = 'SELECT * FROM library.messages LIMIT '. ($offset -1)*$perpage.", $perpage ";$result = $db->query($sql);if ($result){	foreach ($result->fetchAll() as $row)	{		echo "subject:    ".$row[5]."<br />";	}}else{	$error = $db->errorInfo();	echo "error happened..".$error[2];	exit();}$numpage = $total%$perpage;if($total%$perpage) $numpage++;$cur = $offset;if ($cur < $numpage){	echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset = ".($cur+1)."'> Next Page</a><br />";}if($cur > 0){	echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset =". ($cur-1)."'> Prev Page</a><br />";}?>
ログイン後にコピー


問題は次のとおりです。次のページまたは前のページをクリックするたびに、同じコンテンツ、つまりホームページのコンテンツが表示されます。データテーブルの内容が 3000 行ある場合、何が起こっているのでしょうか?


ディスカッションに返信 (解決策)

受信オフセットを処理しているのを見ませんでした

受信オフセットを処理しているのを見ませんでした



すごいです

ここで上記を参照してください次のように変更します。

$offset = isset($_GET['pid'])?intval($_GET['pid']):1;if(!$offset) $offset = 1;开头就处理了啊
ログイン後にコピー

クリックして 20 ページのコンテンツを表示すると、テスト情報が最初のページに表示されますが、得られる内容は $_GET['offset'] ですが、これは正しいです。引数なしでそのページに表示されましたか?

以下に示すように、20 ページをクリックしました。ブラウザのアドレス バーには http://127.0.0.1/php/example/setPage02.php?offset=20 と表示されます
ただし、エコー「the current page: $offset
」; は依然として最初のページを表示します。
何が起こっているのですか?

42 行目には ...setPage02.php? offset=$i'>$i....
2 行目は $offset = isset($_GET[' intval($ _GET)] です['オフセット']) : 1;

何が問題かわかりますか?

42 行目は ...setPage02.php? offset=$i'>$i....
2 行目は $offset = isset($_GET[' intval($_GET']) ? 'オフセット']) : 1;

何が問題かわかりますか?





ははは、私はまだ編集ツールを変更する必要があるようで、そのために苦労しました...THX

。 42 行目は ...setPage02.php? offset=$i'>$i....
2 行目は $offset = isset($_GET['offset']) ? ]): 1;

何が問題か知っていますか?




今、私は Windows 環境で、普段は EditPlus 編集ツールを使用していますが、そのような明らかな違いを心から感じています。 。 。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート