Я думаю, ключ к пониманию того, как вы храните порядок элементов в вашей БД в данный момент.Например, если у вас есть таблица SQL с именем items
, вы можете расположить ее следующим образом:
ID, OwnerID, ItemDescription
151, 543, "Visit Niagara Falls"
152, 543, "Visit London"
153, 543, "Visit Mumbia"
154, 989, "Eat ice-cream in Venice"
Тогда, к сожалению, вы не сохраняете порядок элементов и порядок, в котором они будутбудет отображаться как «неопределенный», то есть это может быть любой порядок (или, вероятно, просто в порядке идентификатора, который, вероятно, будет порядком, в котором они были созданы.
Так что вам нужно добавить новый столбец Order
следующим образом:
ID, OwnerID, Order, ItemDescription
151, 543, 1, "Visit Niagara Falls"
152, 543, 2, "Visit London"
153, 543, 3, "Visit Mumbia"
154, 989, 1, "Eat ice-cream in Venice"
Как только вы это получите, вы можете легко убедиться, что отображаете элементы в порядке предпочтения, добавив ORDER BY Order
к вашему SQL-запросу.
Но что вы можете сделать сейчассделайте, если вы получите обратно JSON из таблицы, как вы показали,
{\"tinvwl-sort\":[\"153\",\"152\",\"151\"]}
обновит значения столбца заказа так, чтобы 153 -> 1, 152 -> 2, 151 -> 3. Затемкогда вы в следующий раз выберете элементы в списке желаний, они будут в новом порядке. Вы можете использовать json_decode($order)
в PHP, и тогда у вас будет объект со свойством tinvwl-sort
, значением которого является массив в заказе.вам это нужно.
Надеюсь, это поможет!