2012-12-13 4 views
1

저는 OOP 및 PDO에 상당히 익숙하며 MYSQL 결과를 페이지별로 표시하는 방법을 알지 못합니다 (예 : 페이지 당 10 개). 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?PHP + MYSQL 페이지 - OOP 및 PDO

public function getResults() { 
    try { 

     $con = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 
     $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $sql = "SELECT * FROM table ORDER BY id DESC LIMIT 10"; 
     $result = $con->query($sql); 

     while($row = $result->fetch(PDO::FETCH_ASSOC)) { 
     $msg_id = $row['id']; 
     echo '<div id="results">' .$msg_id. '</div>'; 
     } 

     $con = null; 

    }catch(PDOException $e) { 

    echo $e->getMessage(); 

    } 

} 

} 
+1

이 조금 넓은 정말 PDO 또는 OOP 관련이 없습니다. – jeroen

+0

'getResults()'함수에 추가 매개 변수를 추가하려고하면 추가 매개 변수는'$ start','$ count'가됩니다 – Deepak

+0

[PHP PDO bindValue in LIMIT] 가능한 중복 (http://stackoverflow.com/questions)/2269840/php-pdo-bindval-in-limit) – Barmar

답변

0

이것은 좋은 시작처럼 보입니다. 결과 다음 세트를 얻으려면, 당신이 문 사용해야합니다 :

SELECT * FROM table ORDER BY id DESC LIMIT 10, 10 

이 결과 11 더 일반적으로

20 당신에게 반환을, 당신은 GET 매개 변수를 갖고 싶습니다

: 그런 다음 세트 수에 따라 동적으로 쿼리를 생성 할

http://mywebsite.com/mypage.php?set=1

: 당신은 어떤 세트를 표시 할 수 있습니다

$sql = sprintf("SELECT * FROM table ORDER BY id DESC LIMIT %s, 10", $con->quote($_GET['set'] - 1)*10)); 

따옴표 부분은 SQL 주입에 대해 당신을 보호하므로 매우 중요합니다 (자세한 내용은 google을 참조하십시오). 그것은 가치가 무엇을 ",

0

봅니다 함수 getResults에 추가 매개 변수를 추가하는()와 추가 매개 변수 $start, $count은, 다음 쿼리

public function getResults($start, $count) { 
    try { 

     $con = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 
     $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $query = $con->prepare("SELECT * FROM table ORDER BY id DESC LIMIT :start, :count"); 
     $query->bindValue(':start', $start); 
     $query->bindValue(':count', $count); 
     $query->execute(); 

     while($row = $query->fetch(PDO::FETCH_ASSOC)) { 
      $msg_id = $row['id']; 
      echo '<div id="results">' .$msg_id. '</div>'; 
     } 

     $con = null; 

    } catch(PDOException $e) { 
     echo $e->getMessage(); 
    } 

} 
0

이 내 의견에 이러한 변수를 사용하는 것 ", 내가 만난 최고의 페이지 매김 클래스입니다. 4 줄의 코드만으로 구현할 수 있습니다. 페이지 링크 상단과 하단을 설정하고 사용자가 페이지 당 얼마나 많은 행을 선택할 수 있습니다. 당신은`pagination`을 찾아야한다

Pagination class link