mysql - 如何从可排序的mysql中的jquery-ui存储有序行

标签 mysql jquery-ui jquery-ui-sortable

我有一个像这样的项目清单

<ul id='lst'>
   <li id=123>first item</li>
   <li id=231>second item</li>
   <li id=321>third item</li>
</ul>


在jQuery中,我对此进行了排序:

$("#lst").sortable();


排序完成后,我将调用以下命令以获取用户放置物品的顺序:

.sortable('toArray');


我使用AJAX将这个数组发布到PHP脚本中:

.post("store.php") {
   command: "storeitemorder",
   list: $("#lst").sortable("toArray") 
},function( data ) {},"json" );


这样可以很好地将新订单传递给PHP,然后得到数组。现在的问题是:我想将信息存储在MySQL数据库中,而不必对每个项目进行单独的查询。每个项目在数据库中都有一行存储。例如,它开始如下:

123 - first item
231 - second item
321 - third item


数字是项目所在的行。如果用户将第一个项目放在最后一个位置,我希望MySQL设置以下内容

first item (id=123), row=2
second item (id=231), row=1
third item (id=321), row=0


我可以进行3个查询,但是必须有一个更优雅的解决方案来做到这一点。而且,列表的长度可能比这更长,并且由于有很多用户,我不想对每个列表项进行查询...

有人知道解决方案吗?

最佳答案

尝试这个:

$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));


基本上,您可以使用爆破转换数组

此处有更多详细信息:

insert multiple rows via a php array into mysql

关于mysql - 如何从可排序的mysql中的jquery-ui存储有序行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037340/

相关文章:

jquery可排序边框折叠chrome safari

php - 在带有 UNION 关键字的 mysql 查询中使用按 DESC 或 ASC 排序

asp.net-mvc - 如何使用ajax将DatePicker创建的日期值传递给mvc 5 Controller

jquery - 自动完成在向下箭头键上显示整个列表

jquery - 为什么当我手动触发可排序事件时,UI 对象为 null?

jQuery Sortable() 带有原始位置占位符?

mysql - 从单个结果返回 SET 作为多行

PHP 在脚本结束时自动关闭连接

php - 3 表连接并在其中添加

javascript - jQuery UI 可放置类