簡體   English   中英

下一條記錄不存在錯誤處理

[英]Next record doesnt exist error handling

我有一些代碼根據記錄ID轉到數據庫中的下一條記錄,當它下次點擊它時到達最后一條記錄,由於表中沒有記錄而且url沒有有效。 是否有一些錯誤處理我可以用它來顯示最后一條記錄時的警報? 謝謝

<a id="next" data-ajax="true"  href="eventviewtester.php?eventid= <?php echo $_GET['eventid'] +1;?>" style="display:none;"></a>

看起來好像你正在處理一種退化形式的分頁 - 你一次分頁單個記錄的情況。 因此,您應該使用典型的分頁方法,該方法要求您了解總可能結果集的大小以及該結果集中的位置。

我建議遠離盲目依賴row id + 1進行分頁查看,因為這種機制可能不可靠(例如,如果從表中刪除一行而在數字序列中留下間隙會發生什么?)。 您應該在表上執行LIMIT X,Y類型的查詢,以明確了解您正在處理的行。 也許在你的情況下,這意味着一次獲得一組兩個記錄,這樣你就可以顯示當前記錄,並顯示指向下一條記錄的鏈接(如果你已達到記錄上限和你的查詢,則不顯示next鏈接只返回一條記錄)。

以下是一些查詢建議。

這將獲得當前選定的記錄加上下一個最高記錄。 如果只返回一行,則這是最后一條記錄

SELECT [fields]
FROM [table]
WHERE eventid >= [value from GET]
ORDER BY eventid ASC
LIMIT 2

或者,如果你想要處理“頁面”,即不依賴於事件id本身,而是依賴於X位置的事件

SELECT [fields]
FROM [table]
ORDER BY eventid ASC
LIMIT X,1

這里X將是一個從零開始的值,這樣如果你想按升序排列第10個事件,你將傳遞一個值9.這里你不需要知道下一個事件id號(你可以只需要調用第11頁)在第10頁的鏈接中,所以我們只返回1條記錄。 當然,要了解執行額外的簡單查詢以確定表中行數所需的頁面總數。

由於您在評論中提到要嘗試基於eventid的方法,因此我認為第一個查詢是您需要使用的。 因此,當您讀取結果集時,顯然第一條記錄將包含您在當前頁面上顯示所需的數據。 然后,您需要從第二條記錄中獲取eventid信息,並在構建查詢字符串時使用它。

// you would grab next event id in your second iteration through the DB result set
$next_event_id = $row['eventid'];

// then use it when building your URL reference
echo '<a id="next" data-ajax="true"  href="eventviewtester.php?eventid=' . $next_event_id . '" style="display:none;"></a>';

查找記錄總數,然后在計數小於或等於該數字時顯示鏈接。

// FIND TOTAL RECORD COUNT
$number_of_records = 20;

// CHECK TO SEE IF THE COUNT IS LESS THAN OR EQUAL TO THE TOTAL 
if ($_GET['eventid'] + 1 <= $number_of_records) {
    echo '<a id="next" data-ajax="true"  href="eventviewtester.php?eventid='.($_GET['eventid'] + 1).'" style="display:none;">Link Text</a>';
}
else {
    echo 'Non-Link Text';
}

我不確定這個,試試這個。 使用計數值獲取記錄數。

if($count>$_GET['eventid']){
<a id="next" data-ajax="true"  href="eventviewtester.php?eventid= <?php echo $_GET['eventid'] +1;?>" style="display:none;"></a>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM