이전 기사와 다음 기사의 PHP 구현 방법 예제 요약

高洛峰
풀어 주다: 2023-03-05 13:12:01
원래의
1609명이 탐색했습니다.

본 글은 이전 글과 다음 글을 PHP로 구현하는 방법을 분석한 글입니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

PHP는 이전 기사와 다음 기사를 주로 SQL을 사용하여 현재 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 article_id, title FROM article WHERE article_id = $max_id;
로그인 후 복사

이를 단순화하고 하위 쿼리로 변환합니다.

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);
로그인 후 복사

다음 기사에서는 코드는 다음과 같습니다.

SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;
로그인 후 복사

이후 이 SQL 문을 실행하면 $min_id를 얻게 되고

SELECT article_id, title FROM article WHERE article_id = $min_id;
로그인 후 복사

이를 단순화하고 하위 쿼리로 변환합니다.

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);
로그인 후 복사

마지막으로 많은 친구들이 다음 문을 사용하는 것을 좋아합니다


이전 장의 코드는 다음과 같습니다.

select id from table where id10 limit 0,1;
로그인 후 복사

확실히 문제는 없지만 성능이 별로 좋지 않습니다.

SQL 문 최적화:

Union all을 사용하여 3행의 데이터를 가져오는 문을 구현할 수 있지만, 전제는 세 쿼리의 필드가 결과의 첫 번째 행이 동일해야 한다는 것입니다. 이 쿼리의 두 번째 행은 현재 기사이고 세 번째 행은 다음 기사입니다. 코드는 다음과 같습니다.

(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);
로그인 후 복사

이제 cms phpcms 구현의 몇 가지 예를 살펴보겠습니다. 이전 기사 및 다음 기사

현재 검색 기사 ID 가져오기:

$id = isset($_GET[&#39;id&#39;]) > 0 ? intval($_GET[&#39;id&#39;]) : "";
로그인 후 복사

다음 기사:

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

이전 기사:

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

이 기사는 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 될 것입니다.

이전 기사와 다음 기사의 더 많은 PHP 구현 방법과 예제를 보려면 PHP 중국어 웹사이트의 관련 기사를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!