2014-11-25 2 views
1

기사가있는 뉴스 웹 사이트를 만들고 있는데 각 게시물 끝에 다음 기사와 이전 기사를 표시하려고합니다.데이터베이스에서 이전 항목 가져 오기

다음 링크는 정상적으로 작동하지만 이전 링크는 항상 첫 번째 게시물을 표시합니다. prev 코드

$get_next_sql = "SELECT * FROM articles WHERE id > '$article_id' LIMIT 1"; 
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' LIMIT 1"; 

오전 내가 뭔가 빠진 다음은 get 나는 각각 사용하고 코드는?

+0

$의 get_prev_sql은 항상 첫 번째를 표시합니다 . 코드에 오류가 없습니다. 오류는 논리에만 있습니다. order by 절을 사용하지 않고 제한하면 내림차순으로 순서를 지정하십시오. 오름차순의 기본 정렬 스타일을 사용하므로 항상 첫 번째 스타일을 표시합니다. –

답변

4

id의 게시물 수가 현재보다 낮습니다.

기본적으로 데이터베이스는 PRIMARY 필드와 IN ASC 순서로 정렬됩니다.

따라서 항상 가장 낮은 게시물은 id입니다.

현재 게시물은 현재보다 낮으며 가장 높은 숫자는 id입니다.

그래서 수정 된 코드는 다음과 같아야합니다 기본 키

$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' ORDER BY id DESC LIMIT 1"; 
+0

예, 고맙습니다. 이해합니다. - 완벽하게 작동합니다. – user3177012

+0

@ user3177012, 내 대답이 도움이 되었다면 해결책으로 받아 들여주세요. – Pupil

2
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' ORDER BY id DESC LIMIT 1"; 

기본 순서는 ASC

1

사용이 쿼리입니다

select * from table_name where id < your_current_id order BY id desc limit 1 
관련 문제