我想做一個簡單的博客。在頁面內容的底部,我放置了分頁,其中顯示了指向下一個和上一個博客條目的鏈接,博客標題位於我從名爲「pages」的數據庫表中獲得的鏈接「menu_name」列中。 我首先做一個查詢並創建通過所謂的「博客」之類的功能的陣列,然後設置一些變量這樣做:如何引用下一個和上一個數組值?
$sql = "SELECT * FROM pages ";
$sql .= "ORDER BY id DESC ";
$pages = Blog::find_by_sql($sql);
$blog_page = reset($pages);
$page_id = Blog::find_by_id(isset($_GET['page']) ? $_GET['page'] : $blog_page->id);
然後,我做出了代號爲以前的博客鏈接如下:
public function pagination_previous(){
global $address; //$address = "list_blogs.php?page=";
global $page_id;
global $pagination; //a class for storing functions that handle pagination
global $pages;
if($pagination->has_next_page()){
echo "\n <a class=\"olderblog\" href=" . $address;
echo $pagination->next_page();
echo " title=\"Newer Blog\">« ";
foreach($pages as $page => $value){
if($page_id->id + 1 == $value->id){
echo $value->menu_name;
}
};
echo "</a> ";
}else{
echo "";
}
}
這是函數has_next_page()
public function has_previous_page(){
return $this->previous_page() >= 1 ? true : false;
}
,這是previous_page():
public function previous_page(){
global $blog;
return $this->current_page - 1;
}
這很好,直到我決定從哪裏刪除博客條目的管理區域。 當我刪除一個帶有id的博客條目時,問題就開始了。讓我們來說一下6.因爲在數據庫表「pages」中沒有更多id = 6的項目,所以前後頁面上的下一頁或上一頁的鏈接缺少的頁面是空的,但仍指向頁面= 6,因爲has_previous_page()從$ current_page中減去1。 我中途想出一個辦法擺脫這種混亂通過設置數量Pagination_next()函數是這樣的:
public function pagination_next(){
global $address;
global $pagination;
global $page_id;
global $pages;
if($pagination->has_previous_page()){
foreach($pages as $page => $value){
if($page_id->id - 1 == $value->id){
echo "\n <a class=\"newerblog\" href=" . $address;
echo $value->id;
echo " title=\"Older Blog\">";
echo $value->menu_name;
break;
}
}
echo " »</a> ";
}else{
echo "";
}
}
然而,這仍然沒有因爲foreach循環內,如果條件下工作。 我需要在pagination_previous()和pagination_next()中設置這個條件,以引用基於它的數組索引($ page)的下一個和前一個數組項,而不是在id($ value-> id)上,但是我不能爲我的生活弄清楚這一點。這是數組$頁的樣子:
Array
(
[0] => Blog Object
(
[id] => 8
[subject_id] => 2
[menu_name] => Aliquam sed interdum
[position] => 4
[visible] => 1
[created] =>
[content] =>
Aliquam sed interdum tortor. Vivamus et blandit velit...
[1] => Blog Object
(
[id] => 7
[subject_id] => 2
[menu_name] => Vestibulum ante ipsum
[position] => 3
[visible] => 1
[created] =>
[content] =>
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices...
[2] => Blog Object
(
[id] => 5
[subject_id] => 2
[menu_name] => Praesent massa mi
[position] => 2
[visible] => 1
[created] =>
[content] =>
Praesent massa mi, pretium et leo vitae, aliquam...
[3] => Blog Object
(
[id] => 4
[subject_id] => 2
[menu_name] => Nam interdum tincidunt
[position] => 1
[visible] => 1
[created] =>
[content] =>
Nam interdum tincidunt purus quis lacinia. Aliquam erat volutpat.
)
)
有人能幫助我嗎?
謝謝大家的回答,但不幸的是他們中沒有人幫我解決了我的問題。 用盡了所有選項之後,我肯定地認爲解決這個問題的唯一方法就是弄清楚如何在if條件中引用下一個或前一個現有的$ value-> id,而不用加1或減1進入下一頁,因爲這會導致在數據庫中缺少id時出現空鏈接。 如果有人能解決這個難題,我會永遠感謝那個人。
數組指針? [下一個()](http://us1.php.net/manual/en/function.next.php)和[prev()](http://us1.php.net/manual/en/function.prev .php) –
試過了。不起作用。 –
嘗試我在我的答案中提供的功能。它通過測試數據進行測試併爲我工作。 – Uours