문제

나는 영화 리뷰 목록을 시간순으로 정렬하려고합니다. 우리는 사용자가 선택할 수있는 두 가지 옵션 인 연대순 및 알파벳순이 있습니다. 이 페이지는 기본적으로 알파벳순으로 불이행되지만 사람들이 연대순 옵션을 클릭하면 아무 일도 일어나지 않습니다.

다음은 지금 우리가 가진 코드입니다.

// category 3 is 'reviews', category 12 is 'dvd reviews'
                if (($GLOBALS["CategoryId"] == 3 || $GLOBALS["CategoryId"] == 12) && !isset($_GET['unsort']))
                {
                    $output = AL_HELPER::GetArticles($articleResult);
                }
                else
                {
                    $output = AL_HELPER::GetArticlesABC($articleResult);
                }

내가 한 일은 두 개의 IF를 플립 플롭이었습니다. getarticles를 먼저하고 getarticlesabc 두 번째로 다음과 같이 보였습니다.

// category 3 is 'reviews', category 12 is 'dvd reviews'
                if (($GLOBALS["CategoryId"] == 3 || $GLOBALS["CategoryId"] == 12) && !isset($_GET['unsort']))
                {
                    $output = AL_HELPER::GetArticlesABC($articleResult);
                }
                else
                {
                    $output = AL_HELPER::GetArticles($articleResult);
                }

그것은 실제로 리뷰를 연대순으로 분류했지만 모든 알파벳 옵션을 제거했습니다. 본질적으로 그것은 연대기 검토의 긴 목록이었습니다. 그래서 분명히 그것은 우리가 원하는 것이 아닙니다.

누구든지 페이지에 나열된 항목 수를 제한하는 방법을 아는 사람이 있습니까? 아니면 여기서 완전히 다른 접근법이 필요할 수 있습니다. 그렇다면 어떤 제안도 있습니까?

도움이 되었습니까?

해결책

백엔드 데이터베이스와 SQL을 사용하는 경우 페이지 당 결과 수를 제한하는 것이 한계 연산자를 사용하여 설정된 결과 수를 검색하는 것만 큼 간단합니다. 그런 다음 가져온 결과 세트와 관련된 페이지간에 변수를 전달하여 다음/이전 작업을 구현할 수 있습니다.

예를 들어:

SELECT <Whatever> FROM <review table> LIMIT 0,10

처음 10 개의 결과를 검색합니다.

SELECT <Whatever> FROM <review table> LIMIT 10,20

다음 10을 검색합니다. 숫자를 변수로 대체하여 페이지 매김을 달성 할 수 있습니다.

SELECT <Whatever> FROM <review table> LIMIT resultIndex,resultIndex+10
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top