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