Видно же, что здесь используется Symfony, с его сериализатором.
И при этом проблема не в самом JSON, а в кривой логике.
При чем здесь голый json_decode? При чем здесь JSON_UNESCAPED_?
Во-первых, так не надо делать. Статическим элементам нечего делать в параметрах.
А по уму надо вообще настроить default значения в базе и совсем выкинуть эти поля из запроса.
Во-вторых, нет смысла делать одноразовую переменную, весь массив можно писать прямо в функцию.
Давайте я вам отвечу на этот дурацкий вопрос, а вы сотрете свой идиотский ответ?
У вас выводится, потому что вы сортируете по кривой дате.
В order by надо писать исходную дату, а не отформатированную.
Не dateformat, а date.
И все прекрасно отсортируется.
Справедливости ради, про уникальность я дописал не сразу, а позже, когда обратил внимание на сам запрос.
Который, как оказалось, никакого отношения к "выполнению запросов MySQL к полю JSON" не имеет.
ситуация, когда пользователь добавил в корзину два товара, потом с телефона добавил еще два, а потом зашел с третьего устройства, и что он в таком случае увидит?
-- это вообще ни о чем.
Если он со всех этих устройств авторизован, то увидит все добавленные товары
если на каком-то не авторизован, то будет добавленные видеть только на этом устройстве.
просто как 2х2
писать какую-то чушь в localStorage с отметкой "id=null" - я вам уже писал выше - нет никакой нужды.
Если пользователь авторизован, то просто отправляем айди товара и количество на сервер, там пишем в базу.
Шерститстость у вас возрастет. Как у Шарика из мультфильма :)
Если вы прочтете ответ Akina, то там нет ни слова про "возрастание". По той простой причине, что никакого возрастания при изменении кодировки с utf8 на utf8mb4 нет и быть не может. Про возрастание писал ниже Sergey В., полную чушь.
Если вы хоть немного почитаете про кодировки, то вам это тоже станет ясно.
Вот видите, вы не понимаете сути вопроса, а беретесь отвечать на него.
И просто сыплете общими фразами про профайлер и Интел, в надежде произвести впечатление эксперта.
Но в итоге выглядите просто глупо :)
При всем уважении, это довольно педантский ответ
Если у вас в таблицы связаны не по первичным ключам, а по строкам, то проблема с "перекодированием" будет вас волновать в последнюю очередь.
Плюс я не уверен, что там в принципе используется перекодирование, поскольку фактически это одна и та же кодировка, в одной просто меньше знакомест.
Нет, вопрос был другой.
вы спросили, "как мне в js различать пользователей?"
и этот вопрос поставил всех в тупик.
потому что различать пользователей вы должны были до того как делать корзину
или я не понимаю, что вы имеете в виду под "различением пользователей"
TtT RrR, вот вы пишете, "Сначала заносят в базу". Ну вам же надо как-то отличать, какой пользователь сейчас с данного браузера просматривает магазин?
У вас этот функционал уже должен быть. почему вы спрашиваете, как его сделать?
В каком смысле различать?
Как это относится к исходному вопросу?
Я думал, вы уже решили вопрос с авторизацией.
Если нет, то вам вместо корзины надо делать авторизацию.
К сожалению, средний пользователь ПК не в состоянии проводить статистически значимые тесты. Внося чудовищные погрешности в процессе.
И такой совет в 100% случаев приводит только к возникновению диких суеверий.
И при этом проблема не в самом JSON, а в кривой логике.
При чем здесь голый json_decode? При чем здесь JSON_UNESCAPED_?