php - 有效地维护项目符号点的顺序,例如mysql中的列表

标签 php javascript jquery mysql

我有一个用户可编辑的列表,例如要点。点经常被删除和添加(到列表的末尾或中间)。有没有比让每个项目符号都有一个 id 并保留以逗号分隔的顺序 SQL 条目更有效的方法来维护此列表的 ORDER?示例:

$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>';
}

最佳答案

您可以向项目符号表添加一个ordinal 字段。

然后您的选择如下所示:

SELECT id, data FROM bullets ORDER BY ordinal

此外,您不应该像在用户表中处理订单那样存储非规范化数据。

此外,您不应将字段命名为 order,因为它是保留字。

关于php - 有效地维护项目符号点的顺序,例如mysql中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10202843/

相关文章:

php - 夹具 PHP 算法

php - 调用存储过程后从 php 访问 LAST_INSERT_ID()

php - 如何在数据库中搜索数组在哪里

javascript - 如何在响应式背景上调整 div

javascript - 使用 JQuery 剥离菜单

php - Joomla 3 获取菜单标题

javascript - 在java脚本中获取下拉列表中所选项目的文本

javascript - 如何缩小我的谷歌浏览器扩展程序的 javascript 文件

javascript - jQuery 返回 [object Object] 值(镜像文本输入字段的值)

javascript - 在网站加载之前根据设备高度设置 div 的最小高度的问题