0
我有一個用戶可編輯列表像項目符號點。頻繁地刪除和添加點(到列表的末尾或中間)。有沒有更有效的方法來維護這個列表的ORDER,而不是讓每個子彈都有一個id,並保持用逗號分隔的順序的SQL條目?例如:有效維護像mysql中的列表項目符號點的順序
$result = mysql_query("SELECT order FROM users WHERE user = '$userId'"); //Get order for logged in user. returns id1,id2,id3,id4
$row = mysql_fetch_array($result);
$order = explode(',', $row['order']); //make the order an array
$result = mysql_query("SELECT id, data FROM bullets"); //get all the bullets
$bullets = array();
while($row = mysql_fetch_array($result)){
$project[$row['id']] = $row['data'];
}
然後運行:
foreach($order as $k => $v){
echo '<li id="'.$k.'">'.$v.'</li>';
}
所以你說每個子彈添加它的位置值作爲一個int?我正在考慮這樣做,但遇到了一個問題。如果用戶只訪問部分數據,那麼訂單就會混亂。例如,如果完整訂單是'id1,id2,id3,id4',用戶訪問'id2,id3'然後將id5添加到他的末尾,它看起來像是'id2,id3,id5',但是在更大的方案中它應該是'id1,id2,id3,id5,id4' – 2012-04-18 04:49:46
不要簡單地添加到您的代碼中的數字。讓數據庫處理這個序列或做更新,你添加最大(序數) – 2012-04-18 04:54:35
也許我不理解如何使用序號字段..? – 2012-04-18 05:07:03