English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHPで簡単に前ページ・次ページ機能を実現するサンプル

この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(メールを送信する際には、#を@に置き換えてください。申し訳ありませんが、関連する証拠を提供し、確認がとれた場合、本サイトは即座に侵害を疑われるコンテンツを削除します。)

おすすめ