2012-04-24 49 views
3

比方說,我想使用$ wpdb類從數據庫中檢索圖像位置,以便我可以創建一個圖像庫。我有這個代碼,但是當我點擊'下一步'時,鏈接似乎並沒有去任何地方。我錯過了什麼嗎?

<?php 
global $wpdb; 
$wpdb->show_errors(); 
$offset = 0; 
if(isset($_GET['page']) && !empty($_GET['page'])){ 
$offset = ($_GET['page']-1) * 10; // (page 2 - 1)*10 = offset of 10 
} 
$pics = $wpdb->get_col("SELECT pic_thumb_url FROM wp3_bp_album 
WHERE owner_type = 'user' ORDER BY title DESC 
LIMIT 10 OFFSET $offset" 
); 
//LIMIT shows 10 results per page 
//OFFSET will 'skip' this number off results. On page 1 the offset is 0 on page 2 it is 10  (if 10 results per page) 
foreach($pics as $pic) : 
echo '<a href ="'. '#' .'" > <img src="' . $pic . '">' . '</a>'; 

endforeach; 


/* 
pagination 
*/ 
?> 
<a href="/community/?page=<?php echo $_GET['page']-1 ?>">previous</a> 
<a href="/community/?page=<?php echo $_GET['page']+1 ?>">next</a> 

我可以用這個來實現分頁嗎?

回答

3

您不能使用內置分頁,而是使用分頁在查詢中使用OFFSETLIMIT。所以,讓自己的分頁:

<?php 
$offset = 0; 
if(isset($_GET['page']) && !empty($_GET['page']) { 
    $offset = ($_GET['page']-1) * 10; // (page 2 - 1)*10 = offset of 10 
} 
$wpdb->get_col("SELECT pic_thumb_url FROM wp3_bp_album 
    WHERE owner_type = 'user' ORDER BY title DESC 
    LIMIT 10 OFFSET $offset" 
); 
//LIMIT shows 10 results per page 
//OFFSET will 'skip' this number off results. On page 1 the offset is 0 on page 2 it is 10 (if 10 results per page) 

/* 
pagination 
*/ 
?> 
<a href="/currentpage/?page=<?php echo $_GET['page']-1 ?>">previous</a> 
<a href="/currentpage/?page=<?php echo $_GET['page']+1 ?>">next</a> 

並非無懈可擊,它不檢查,如果你是第一個或最後一個頁面上,但至少先檢查你必須建立自己。

+0

對不起,我不確定你的意思。 「你不能在分頁中使用這個版本」是什麼意思,你能給我一個關於OFFSET和限制的例子嗎?謝謝! – 2012-04-24 20:02:46

+0

WordPress的建立在分頁功能,如:http://codex.wordpress.org/Function_Reference/paginate_links它不會與您的代碼工作。 SQL編輯 – janw 2012-04-24 21:25:46

+0

謝謝Janw。我用你的reccomendation來抵消和限制。我現在在頁面上獲得了10個結果,但我怎麼實際分頁? – 2012-04-26 03:31:23

相關問題