본 글은 이전 글과 다음 글을 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['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 프로그래밍에 종사하는 모든 사람에게 도움이 될 것입니다.
이전 기사와 다음 기사의 더 많은 PHP 구현 방법과 예제를 보려면 PHP 중국어 웹사이트의 관련 기사를 주목하세요!