간단한 블로그를 만들고 있습니다. 페이지에 n
개의 게시물을 표시하고 표시 할 게시물이 더있는 경우 다음 페이지로 탐색 버튼을 만들고 사용자가 클릭하면 다음 페이지에 n
개의 게시물을 표시하는 식으로 진행합니다. 내가 가진 내의 index.php에서PHP는 페이지에 n 개의 게시물을 표시합니다.
class PageManager {
private $post_id;
// id of the latest post in the db
public function __construct() {
$this->post_id = PostManager::getLatestPostID();
}
public function displayPage() {
if (isset($_GET['page'])) {
$page_id = $_GET['page'] + 0;
}
else {
$page_id = 1;
}
$this->post_id = PostManager::displayNPosts(10, $this->post_id);
// $1 -> number of posts to display, $2 -> first post to display
// returning the last displayed post id or false if we displayed all posts from the db
// if there are still posts to display -> create navigation button to the next page
if ($this->post_id) {
echo '<div class = "container">';
echo '<ul class = "pager">';
echo '<li onclick = "show('.($page_id + 1).')"><a href = "index.php?page='.($page_id + 1).'">Next page</a></li>';
echo '</ul>';
echo '</div>';
}
}
:
$pm = new PageManager();
$pm->displayPage();
쉽게 추측 할 수있는 것처럼, 매번 나는 OOP로하고 있습니다
, 나는 다음과 같다 클래스 PageManager
이 사용자가 '다음 페이지'버튼을 클릭하면 index002.php가로드 될 때마다 새 $pm
을 생성하기 때문에 페이지에 동일한 n
글이 표시됩니다. 나는 그것을 할 수있는 좋고 간단한 방법을 찾고있다.
제발 저를 비난하지 마십시오. 미리 감사드립니다.
답장을 보내 주셔서 감사 드리며 매개 변수를 보내고 확인하는 좋은 방법이 있습니다. 하지만 불행히도 내 문제는 해결되지 않았다. 왜냐하면 index.php가로드 될 때마다 새로운 '$ pm'개체를 만들고 있기 때문에 동일한 게시물을 계속해서 표시하고 있음을 의미한다. – RaspberryJam
알았습니다. $ this-> post_id = PostManager :: displayNPosts 호출에 페이지 매개 변수를 전달해야합니다. 매개 변수를 보내지 않으면 항상 같은 게시물을 얻습니다. page_id 매개 변수를 가져 오지만 탐색 링크에만 사용하십시오. displayNPosts 기능은 어떻게 작동합니까? 첫 번째 매개 변수 인 -10-는 제한이고 두 번째 매개 변수는 오프셋이라고 생각합니다. 따라서 페이지 번호에 10을 곱하여 두 번째 매개 변수로 사용해야합니다. –