English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このPHPの例では、簡単に前ページと次ページの機能を実現しました。皆さんに参考にしていただき、以下のように詳細を説明します:
考え方の整理:
今や多くの人々がIDの増加を使用しています1と減1前のページと次のページを実現しましたが、記事IDは途切れないようにする必要があります。したがって、前のIDと現在のIDがいくつか知っておく必要があります。
どうすればこの問題を解決できるのか、非常に簡単です!
例:
この記事のIDが200
<a href="?action=up&id=200次のページ</a> <a href="?action=down&id=200次のページ</a>
前のページを実現する場合はaction=upページで関数を書く必要があります
$id= $_GET['id']; //前のページ: $sql = select * articleからid < '.$id.'でソートしてid降順にlimit 0,1"); $rs = mysql_query($sql); $row = mysql_fetch_array($rs); //次一篇: $sql = select * from article where id < '${id}' order by id asc limit 0,1"); $rs = mysql_query($sql); $row = mysql_fetch_array($rs);
原理:現在のIDより小さい(where id < '${id}' 前一篇)および大きい(where id > '${id}' 次一篇)の1件(limit 0,1)データを取得し、降順(desc、前一篇)および昇順(asc、次一篇)で表示します。一つだけ取得する場合、降順または昇順を省略できます。
具体的な実装コード:注釈が必要な場合
フロントエンドで前一篇・次一篇の呼び出し:
<63;php echo GetPreNext(pre,news,$_REQUEST[catid],$_REQUEST[id]);&63;> //前一篇・次一篇を表示 function GetPreNext($gtype,$table,$catid,$id){ $preR = mysql_fetch_array(mysql_query("select * from ".${table}" where catid="${catid}" and id<${id} order by id desc limit 0,1"));//idが入力idより小さい最近の一条 $nextR = mysql_fetch_array(mysql_query("select * from ".${table}" where catid="${catid}" and id>${id} order by id asc limit 0,1"));//idが入力idより大きい最近の一条 $next = (is_array($nextR) &63; " where id=${nextR['id']} " : ' where' 1>2 "); $pre = (is_array($preR) &63; " where id=${preR['id']} " : ' where' 1>2 "); $query = "Select" * from ".${table}" "; $nextRow = mysql_query($query.$next); $preRow = mysql_query($query.$pre); if($PreNext=mysql_fetch_array($preRow)) { echo $PreNext['pre'] = "前のページ:<a href='newsshow.php?id=".$preR['id']."&&catid=".$catid."'>".$PreNext['title']."</a> "; } else { echo $PreNext['pre'] = "前のページ:ありません "; } if($PreNext=mysql_fetch_array($nextRow)) { echo $PreNext['next'] = "次のページ:<a href='newsshow.php?id=".$nextR['id']."&&catid=".$catid."'>".$PreNext['title']."</a> "; } else { echo $PreNext['next'] = "次のページ:ありません "; } }
コードはテスト済みで使用可能です
PHPに関するさらに詳しい内容に興味を持つ読者は、本サイトの特集を参照してください:《PHPよくあるデータベース操作の技術集》、《PHP配列(Array)操作の技術全書》、《PHPソートアルゴリズムのまとめ》、《PHPよくある巡回アルゴリズムと技術のまとめ》、《PHPデータ構造とアルゴリズムの教程》、《PHPプログラムデザインのアルゴリズムのまとめ》、《PHP数学演算の技術のまとめ》、《PHP正規表現の用法のまとめ》、《PHP演算と演算子の用法のまとめ》および《PHP文字列(string)の用法のまとめ》
この記事で述べたことが、皆さんのPHPプログラムデザインに役立つことを願っています。
声明:本文の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、本サイトは所有権を有しない、人工編集は行われていない、および関連する法的責任を負いません。著作権侵害を疑われる内容がある場合は、メールを送信していただければ幸いです:notice#oldtoolbag.com(メールを送信する際には、#を@に置き換えてください。申し訳ありませんが、関連する証拠を提供し、確認がとれた場合、本サイトは即座に侵害を疑われるコンテンツを削除します。)