ホームページ  >  記事  >  バックエンド開発  >  クエリ結果の「戻る/進む」ボタンを作成する_PHP チュートリアル

クエリ結果の「戻る/進む」ボタンを作成する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:02:36858ブラウズ

最近、サポート フォーラムで、検索結果に対して「後方 1 2 3 4 5 前方」のようなリンクを作成する方法について多くの質問がありました。以下のスクリプトがこの機能を検索結果ページに追加するのに役立つことを願っています。この例は MySQL 向けに特別に書かれていますが、他の SQL エンジンにも簡単に適用できます。

アプリケーションごとに異なるため、MySQL クエリ処理にはいくつかの一般的なステートメントを使用します。 TABLE 名は実際のテーブル名に置き換える必要があります。 YOUR CONDITIONAL HERE は where 条件に置き換える必要があり、WHATEEVER は結果を並べ替えるフィールドに置き換える必要があります (アプリケーションで降順が必要な場合は、DESC を忘れずに追加してください)。


$limit=20; // 返される行
$numresults=mysql_query("select * from TABLE where YOUR CONDITIONAL HERE order by

); // 次に、オフセットが 0 に設定されていない場合はスクリプトに渡されたかどうかを判断します
if (empty($offset)) {
$offset=0;
}

// 結果を取得します
$result=mysql_query( "select id,name,phone ".
"from TABLE where YOUR CONDITIONAL HERE ".
"order by WHATEVER limit $offset,$limit"); これで、返された結果が表示されます
while ($data= mysql_fetch_array($ result)) {
// 必要に応じて結果を表示するコードをここに含めます
}

// 次に、他の結果へのリンクを生成する必要があります

if ($offset==1) { // If offset が 0 の場合、PREV リンクを無視します
$prevoffset=$offset-20;
print "PREV n"; / 計算にはリンクが必要です ページ数
$pages=intval($numrows/$limit);

// 除算後に余りがない場合、$pages には必要なページの整数値が含まれます
if ($numrows% $limit) {
// 余りがある場合は 1 ページ追加します
$pages++;
}

for ($i=1;$i<=$pages;$i++) { // ループ
$newoffset=$ limit*($i-1);
print "$i n";
}

// 最後のページかどうかを確認します
if (!(($offset/$limit) ==$pages) && $pages!=1) {
// 次のページでない場合は、後方リンクを指定します
$newoffset=$offset+$limit; print "NEXT

n";

?> これらは役に立つかもしれません。もちろん、HTML 出力をよりきれいにしたい場合もあります...

また、$PHP_SELF の後のリンクには $offset しか含まれていないことに注意してください。クエリの where 条件にパラメータを渡す必要がある場合は、これらを上記に追加する必要もあります。​



http://www.bkjia.com/PHPjc/316509.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/316509.html

技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。