Php 数据库和按用户首选项排序的值

Php 数据库和按用户首选项排序的值,php,mysql,sql-order-by,Php,Mysql,Sql Order By,假设我有一个这样的简单表格: unique ID | url | order 唯一ID通常自动给出,url是必须提交的内容。 但是我怎样才能安排订单呢 我希望用户能够按照自己想要的顺序排列这些urls 我怎样才能做到这一点?最后插入的项目始终具有最后一个订单号,如果我将订单号为5的项目移动到1,则所有项目订单号都会更改。我想在JavaScript中实现它,但现在这并不重要 我遇到的问题是PHP方面。更改顺序编号。您可以使用下拉列表或其他内容来决定数据的显示顺序是升序还是降序。然后,在您的SQL

假设我有一个这样的简单表格:

unique ID | url | order
唯一ID
通常自动给出,
url
是必须提交的内容。 但是我怎样才能安排订单呢

我希望用户能够按照自己想要的顺序排列这些
url
s

我怎样才能做到这一点?最后插入的项目始终具有最后一个订单号,如果我将订单号为5的项目移动到1,则所有项目订单号都会更改。我想在JavaScript中实现它,但现在这并不重要


我遇到的问题是PHP方面。更改顺序编号。

您可以使用下拉列表或其他内容来决定数据的显示顺序是升序还是降序。然后,在您的SQL查询中,使用
orderbyURL DESC
orderbyURL ASC

结束它,您可以很容易地在jquery UI中使用sortable实现这一点,它将按顺序为您提供一个ID数组,从这里开始,只需向php页面发送$.post,该页面只需迭代该数组(因此您知道顺序值)更新行并设置新的订单值

jquery中的stop函数如下所示:

stop: function(event, ui) {
        var ids = [];
        ui.item.parent().children().each(function(n, element) {
            ids[ids.length] = element.id;
        });

        $.post("/somelocation", {
            orderedids: ids.toString()
        } );
    }

我就是这么做的,而且效果很好。我将jQuery UI Sortable用于如下界面:

js:

html/php:

<ul class="sortable">
    <?php foreach($sortables as $index => $sortable){ ?>
        <li>
            <input class="ordering" type="hidden" name="sortable[<?= $index ?>][ordering]" value="<?= $sortable.ordering ?>">

            (Your stuff here…)

        </li>
    <?php } ?>
</ul>

  • 也许我不理解这里的问题,但如果我是一个用户,并且有一长串的URL和订单号,我不太可能想花时间将它们拖放到特定的订单中。URL只是一个例子。。。您可以想象它们是示例的图像,您希望对它们重新排序并将相同的顺序保存到数据库中。
    <ul class="sortable">
        <?php foreach($sortables as $index => $sortable){ ?>
            <li>
                <input class="ordering" type="hidden" name="sortable[<?= $index ?>][ordering]" value="<?= $sortable.ordering ?>">
    
                (Your stuff here…)
    
            </li>
        <?php } ?>
    </ul>