有讀者來信問到,在 DreamWeaver CS4 PHP 一書中第五章,5-8至5-15頁製作後,如果在留言板中某個編號不要,刪除留言後如何讓留言編號能夠遞補功能? 因為留言編號我們是使用欄位中的主索引欄,這是無法有補號的功能的,唯一的方式就是我們自己編號,這個問題說起來沒有那麼好解決喔!要由 PHP 程式碼下手。
在 index.php 中,留言的是由重複區域來顯示每一筆記錄,它是由 <?php do { ?> …… <?php if ($totalRows_RecBoard == 0) { // Show if recordset empty ?> 這個程式區段來重複執行,所以如果你要讓編號自己遞補,就要自己編號。
問題來了,那要怎麼計算?以下是幾個關鍵值: $totalRows_RecBoard -> 資料總筆數 $pageNum_RecBoard -> 目前所在頁數 $maxRows_RecBoard -> 每分頁的資料筆數
假設我們設定 $countNO 為自訂編號的筆數,那麼每一頁開始 $countNO 為多少呢?
在迴圈之前要先加 程式碼: <?php $countNo = $totalRows_RecBoard; if($pageNum_RecBoard>0){ $countNo = $totalRows_RecBoard - $pageNum_RecBoard * $maxRows_RecBoard; } ?>
解釋: 將 資料總筆數 設為 $countNO 的預設值, 如果 目前所在頁數 大於 0,表示不在第一頁, 那麼 $countNO 為 資料總筆數 減去 (目前頁數 * 每分頁的資料筆數)
例如我們設 5 筆資料分一頁,共有 24 筆資料, 那第一頁的編號起始值為 24,即總筆數。 第二頁則的編號起始值為 24 – ( 1 * 5) = 19 第三頁則的編號起始值為 24 – ( 2 * 5) = 14 以此類推。
在迴圈內,原來顯示編號的地方
<?php echo $row_RecBoard['boardid']; ?>
要修改為
<?php echo $countNO; $countNO --; ?>
即可在迴圈內遞減顯示編號了。 |