2013-01-09 3 views
0

내 페이지 하단으로 스크롤 할 때 내 데이터베이스에서 결과를 가져 오려고하는데, 처음 4 개의 결과가 복제되어 내 페이지의 맨 아래에 놓인 다음 다른 4 개 결과는 알 수없는 이유로 실제로 나타나지 않습니다./아무도 내 쿼리에 잘못된 것을 볼 수 있습니까?테이블의 결과를 모두 가져 오지 못했습니다.

// If county isnt set, show all data 
    $sth = $conn->prepare("SELECT * FROM directory WHERE user_active != ''ORDER BY Date DESC LIMIT 12"); 
    $sth->execute(array(':county' => $county)); 

    $c = 1; 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
     echo '<div class="entry'; 
      if (($c % 4) == 1) echo ' alpha '; 
      echo ' span3"><span class="name">' . $row['First_Name'] . ' ' . $row['Surname'] . "</span>"; 
      echo MORE STUFF HERE IS OUTPUT 
     $c++; 
    } 

쿼리 제한을 제거하면 모든 결과가 올바르게 표시됩니다.

답변

0

AJAX 기반 페이지 매김을 시도하는 것처럼 들립니다. 여기서 문제는 사용자가 LIMIT 절에 오프셋을 지정하지 않는다는 것입니다. 지금하고있는 방식대로 테이블 데이터가 변경되지 않았다고 가정하면 쿼리에서 항상 동일한 12 개의 결과를 얻을 수 있습니다. 당신이 예상 할 필요가있다하여 지정하는 것입니다 같은 LIMIT : 첫 번째 (12 개) 기록을 얻으려면

LIMIT <offset>, <number of records> 

그래서이 될 것이다 :

LIMIT 0, 12 

향후 12은 다음과 같습니다

LIMIT 12, 12 

등등 ...

+0

감사 @MikeBrant, 나는 그 여기 뭐하는 거지 ... $ result = mysql_query ("SELECT * FROM 디렉토리에서 LIMIT {$ _POST [ 'count']}, 12"); – Liam

+0

@Liam 나는 팔로우하지 않습니다. 나는 그 코드를 보지 못했다. mysql 함수와 PDO를 혼합하여 사용하고 있습니까? –

관련 문제