この記事では主に前の記事と次の記事をPHPで実装する方法を紹介し、前の記事と次の記事を取得するためのphpのSQL操作に関するクエリスキルをサンプル形式でまとめています。参考にしてください
phpの実装 前の記事次の記事 これは主に現在のIDに基づいて判断し、現在のIDより前のデータまたはIDより後のデータをフィルタリングするという単純なものです。詳細。
ウェブ記事の前後の記事のSQL文の書き方を実装します。
現在の記事の ID が $article_id で、現在の記事の対応するカテゴリの ID が $cat_id である場合、前の記事は次のようになります:
コードをコピーします コードは次のとおりです:
SELECT max(article_id) FROM Article WHERE Article_id < ; $article_id AND cat_id=$cat_id;
この SQL ステートメントを実行すると、$max_id が取得されます
コードをコピーします コードは次のとおりです:
SELECT 記事 ID, タイトル FROM 記事 WHERE 記事 ID = $max_id;
これを単純化し、サブクエリに変換します:
コードをコピーします コードは次のとおりです:
SELECT 記事 ID, タイトル FROM 記事 WHERE 記事 ID = (SELECT max (article_id) FROMarticle WHEREarticle_id < $article_id AND cat_id=$cat_id);
次の記事は次のとおりです:
コードをコピーしますコードは次のとおりです:
SELECT min (article_id) FROMarticle WHEREarticle_id > $article_id AND cat_id=$cat_id;
この SQL ステートメントを実行した後、$min_id を取得し、次のようにします:
コードは次のとおりです:
SELECTarticle_id, title FROM 記事 WHERE 記事 ID = $min_id;単純化してサブクエリに変換します:コードをコピー コードは次のとおりです:
SELECT 記事 ID, タイトル FROM 記事 WHERE 記事 ID = (SELECT min(article_id) FROM Article WHERE Article_id > $article_id AND cat_id=$cat_id);最後に、多くの友人が次のステートメントを使用することを好みます
select id from table where id10 limit 0,1;
SQL ステートメントの最適化:
Union all を使用して、3 行のデータをフェッチする 1 つのステートメントを実現できますが、前提として、3 つのクエリのフィールドがこのクエリの結果の 1 行目は前の記事、2 行目は現在の記事、3 行目は次の記事です。コードをコピーします。次のように: (id < 10 のテーブルから id を選択、id asc 制限 1 で順序付け) Union all (id = 10 のテーブルから ID を選択) Union all (id > 10 のテーブルから ID を選択、id desc で順序付け)制限 1);
それでは、前の記事 次の記事を実装するための cms phpcms の例を見てみましょう。
現在閲覧されている記事 ID を取得します:
$id = isset($_GET['id']) > 0 ? intval($_GET['id']) : "";
次の記事:
$query = mysql_query("SELECT id,title FROM article WHERE id>'$id' ORDER BY id ASC LIMIT 1"); $next = mysql_fetch_array($query);
前回の記事:
$query = mysql_query("SELECT id,title FROM article WHERE id <'$id' ORDER BY id DESC LIMIT 1"); $prev = mysql_fetch_array($query);
まとめ:以上がこの記事の全内容です、皆様の勉強に少しでもお役に立てれば幸いです。関連する推奨事項:
PHPログイン異常のIP検出機能の例を作成する以上が前の記事と次の記事をPHPで実装する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。