Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Methodenbeispiele der PHP-Implementierung des vorherigen Artikels und des nächsten Artikels

Zusammenfassung der Methodenbeispiele der PHP-Implementierung des vorherigen Artikels und des nächsten Artikels

高洛峰
高洛峰Original
2017-02-06 16:27:471543Durchsuche

Dieser Artikel analysiert die Methode zur Implementierung des vorherigen Artikels und des nächsten Artikels in PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

PHP implementiert den vorherigen Artikel und den nächsten Artikel. Dabei wird hauptsächlich SQL verwendet, um anhand der aktuellen ID zu beurteilen und dann die Daten vor der aktuellen herauszufiltern ID oder die Daten nach der ID So einfach ist das, werfen wir einen Blick auf die Details.

Implementieren Sie die Schreibmethode von SQL-Anweisungen für den vorherigen und nächsten Artikel in Website-Artikeln.

Die ID des aktuellen Artikels ist $article_id und die ID der entsprechenden Kategorie des aktuellen Artikels ist $cat_id, dann sollte der vorherige Artikel sein:

SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;

Nach der Ausführung sql-Anweisung, Sie erhalten $max_id , dann

SELECT article_id, title FROM article WHERE article_id = $max_id;

vereinfachen Sie es und konvertieren Sie es in eine Unterabfrage:

SELECT article_id, title FROM article WHERE article_id = (SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id);

Der nächste Artikel lautet, der Code lautet wie folgt:

SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;

Führen Sie diese SQL aus. Holen Sie sich $min_id nach der Anweisung, dann:

SELECT article_id, title FROM article WHERE article_id = $min_id;

Vereinfachen Sie es und konvertieren Sie es in eine Unterabfrage:

SELECT article_id, title FROM article WHERE article_id = (SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id);

Schließlich gefällt es vielen Freunden Um die folgende Anweisung zu verwenden


Vorheriger Artikel, der Code lautet wie folgt:

select id from table where id10 limit 0,1;

Es gibt definitiv kein Problem mit Dies, aber die Leistung ist nicht sehr gut.

SQL-Anweisungsoptimierung:

Sie können Union All verwenden, um 3 Datenzeilen in einer Anweisung abzurufen, aber die Voraussetzung ist, dass die Felder der Drei Abfragen müssen gleich sein. Die erste Zeile des Ergebnisses dieser Abfrage ist der vorherige Artikel, die dritte Zeile ist der nächste Artikel, der Code lautet wie folgt:

(select id from table where id < 10 order by id asc limit 1) union all (select id from table where id = 10) union all (select id from table where id > 10 order by id desc limit 1);

Schauen wir uns nun einige Beispiele in CMS an. PHPCMS implementiert den vorherigen und den nächsten Artikel.

Die aktuell durchsuchte Artikel-ID abrufen:

$id = isset($_GET[&#39;id&#39;]) > 0 ? intval($_GET[&#39;id&#39;]) : "";

Nächster Artikel:

$query = mysql_query("SELECT id,title FROM article WHERE id>&#39;$id&#39; ORDER BY id ASC LIMIT 1");
$next = mysql_fetch_array($query);

Vorheriger Artikel:

$query = mysql_query("SELECT id,title FROM article WHERE id <&#39;$id&#39; ORDER BY id DESC LIMIT 1");
$prev = mysql_fetch_array($query);

Ich hoffe, dieser Artikel wird für alle hilfreich sein, die bei der PHP-Programmierung helfen.

Weitere PHP-Implementierungsmethoden und Beispiele der vorherigen und nächsten Artikel finden Sie auf der chinesischen PHP-Website für verwandte Artikel!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn