php - 使用 php 和 MySql 保存可排序列表的顺序

标签 php mysql jquery-ui

我有一个可以使用 jQuery ui 排序的列表。我能够保护用户所做的更改并将其存储在 var $order 中。我的问题是我不知道如何将其保存在 MySql 数据库中。如何保护 MySql 表中的订单? (请从最基本的开始解释,我刚学php)

HTML。索引.html:

<ul id="sortable">
    <li id="1">item1</li>
    <li id="2">item2</li>
    <li id="3">item3</li>
</ul>

JQUERY。索引.html:

$('#sortable').sortable({ 
    update: function(event, ui) { 
        var newOrder = $(this).sortable('toArray').toString(); 
        $.get('6.php', {order:newOrder};
        }); 
    }
});

PHP:6.php:

$order = $_GET['order'];
// echo $order; // this gives something like 2,3,1

如何使用 php 和 Mysql 保护下表中的 $order 的安全?
我应该更改 id 来发出新订单吗?将订单存储在新列中是否更好?如何按顺序挑选每个元素并将其放置在表格的正确位置?

类似于:

mysqli_query($con,"UPDATE MyTable 
                   SET ...
                   WHERE ... ");

MYSQL表MyTable:

id    concept    order
-----------------------
1     item1
2     item2
3     item3

最佳答案

使用每个项目的正确顺序更新您的数据库:

$order = $_GET['order'];
    // echo $order; // this gives something like 2,3,1


$itemIds = explode(',', $_GET['order']);

foreach($itemIds as $priority => $itemId) {
    // Here you have to update your table, something like UPDATE items SET priority = $priority WHERE id = $itemId
}

然后查询以正确的顺序获取所有项目:

SELECT * FROM items ORDER BY priority 

(“order”是 SQL 中的保留关键字,因此您不应将字段称为“order”,这里我选择“priority”。)

关于php - 使用 php 和 MySql 保存可排序列表的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24826795/

相关文章:

php - 显示动态结果 PHP mySQL

c# - 创建动态 div 标签并将数据放入该 div 标签中,数据是从数据库中获取的

php - 根据 Cakephp 中的用户输入保存多条记录

javascript - 从 HTML div 结构创建多维 JSON 结构

javascript - 我怎样才能一次只显示一个 div?

PHP & MySQL : Insert records in two different tables

php - 如何将一个类添加到一个动态菜单项?

php - paypal 如何使用 checkout.js 获取交易 ID

php - 使用 php 网页脚本中的变量执行 mysql 查询

javascript - jQuery AutoComplete 在第一次使用后显示在元素后面