2011-07-27 22 views
2

我用這個代碼來獲得關於某個ID的信息如何建立與PHP的下一個和以前的鏈接?

$sql = dbquery("SELECT * FROM `videos` WHERE `id` = ".$local_id." "); 

while($row = mysql_fetch_array($sql)){ 
    $video_id = $row["id"]; 
    $video_title = $row["title"]; 
} 

比方說,一個頁面的鏈接將example.com/video.php?id=34

我如何獲得下一個和前一個$ video_id和$ video_title取決於當前的ID?

的問題是,我可以在不增加或減1的電流id的值,因爲35或33可在同時被刪除...

我怎樣才能做到這一點?

//編輯

我有一個很大的問題:以前的鏈接發送我正確的鏈接,但下一個環節總是送我到最後的視頻添加到數據庫中。

,如果我去到數據庫中我得到一個錯誤添加的最後一個或第一視頻,因爲沒有更多的下一個和以前的視頻添加。

+0

如果你不能做ID-1或ID + 1,那麼如何才能知道一個/下一個視頻?是否有日期順序,或類似的東西?如果是的話,你可以嘗試選擇一個日期< or >這個視頻的日期,然後設置限制1.只是一個想法。 –

+2

假設你應該得到下一個ID爲 「SELECT ID FROM視頻WHERE ID>」 .intval($ ID)。」 ORDER BY ID ASC LIMIT 1" 和以前的ID以 「SELECT ID FROM視頻WHERE ID <」 .inval($ ID)。」 ORDER BY ID DESC LIMIT 1" – hadvig

+0

我得到這個版本inval – m3tsys

回答

3

也許兩個查詢會工作......

select id,title from videos where id < $local_id order by id desc limit 1 
select id,title from videos where id > $local_id order by id asc limit 1 
+0

AVEN同樣的問題,我補充說,我得到我的帖子錯誤。 – m3tsys

+0

嗨m3tsys,關於下一個始終送你到最後,確保你使用'asc'作爲訂單ID,如果已經是第一個,或者如果已經在最後,你可以使用mysql_num_rows()讓你知道是否什麼都會返回,並且如果返回0行,請從db –

+0

中獲取第一個或最後一個ID,謝謝,不使用'ASC'導致數據庫中最後一個條目出現問題。我將嘗試使用mysql_num_rows()並查看它是否可行。 – m3tsys

2

你必須使用selectlimit以獲得您想要一排,即

SELECT * FROM `videos` WHERE `id` < " . $local_id . " ORDER BY `id` DESC LIMIT 1 

或者使用>ORDER BY ID ASCnext視頻,而不是我上面顯示的previous

+0

我添加了錯誤,我得到我的文章。 – m3tsys

0

在這裏,你經歷

// entry per page 
$rowsPerPage = 3; 

// Set page number 
if(isset($_GET['page'])) 
    $pageNum = $_GET['page']; 
else 
    $pageNum = 1; 

注:下面的代碼是使用顯示/設置在下&以前的頁碼。

注意:如果當前頁面是那麼的主頁默認$頁次爲1和 如果$頁次被設置爲2,這將作爲

if($pageNum){ 

    $PreviousPageNumber = $pageNum - 1; 
    $NextPageNumber = $pageNum + 1; 

    echo '<a href="?page='. $PreviousPageNumber .'>Previous Page</a>'; 
    echo '<a href="?page='. $NextPageNumber .'>Next Page</a>"; 
} 

注:下面的代碼是使用中顯示受頁碼

$GetPreviousRecord = ($pageNum - 1) * $rowsPerPage; 

備案號te:LIMIT的第一個可選值是開始位置。注意: 第二個需要的值是要檢索的行數。

$query = "SELECT * FROM post WHERE LIMIT $GetPreviousRecord, $rowsPerPage"; 
$result = mysql_query($query); 

而在最後使用while循環使用LIMIT擺脫數據庫中的所有記錄。

相關問題