[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из кукисов
VladokZzz
Добрый день!
Впервые обращаюсь с просьбой, прошу сориентировать.
Имеется кукис cart, в который я поместил следующие данные:
223:М:4,1124:L:1,15::2

Расшифровываю - здесь получается 3 товара
id 223 с размером М 4шт.
id 1124 с размером L 1шт.
id 15 без размера 2шт.

Эти данные попадают в корзину, где отображаются в табличном виде товары в корзине.
Я пытаюсь сделать редактирование кол-ва товаров в корзине. Например, хочу у второго товара сделать 2 шт, а не 1.
Следовательно при нажатии + напротив этого товара подгружаю кукис со всеми данными, разделяя товары запятой
$arr = explode(',', $_COOKIE['cart']);

Далее стопор, как выдрать у выбранного id(1124) последний параметр(кол-во)? И самое интересное, записать ему новое значение?
После этого обновляется страница и посетитель видит в таблице измененное кол-во второго товара.

Быть может все гениальное просто, но... увы мозг сбоит.
Спасибо за внимание!
bestxp
используй сессии как минимум, но опять же ни за сессии ни за кукисы тебя пользователи магазина любить не будут,

составив заказ на работе он не сможет его оплатить дома, так как заказа то и нету, а как же будет решаться проблема когда заказано больше товара чем есть например?
Guest
Цитата (bestxp @ 25.06.2015 - 15:32)
используй сессии как минимум, но опять же ни за сессии ни за кукисы тебя пользователи магазина любить не будут,

составив заказ на работе он не сможет его оплатить дома, так как заказа то и нету, а как же будет решаться проблема когда заказано больше товара чем есть например?

С этим проблем не возникает.
Можно и без сессий. Вопрос стоит в том как правильно отбирать данные с этого массива, менять кол-во и записывать обратно в куки
VladokZzz
Цитата (Guest @ 25.06.2015 - 17:14)
Цитата (bestxp @ 25.06.2015 - 15:32)
используй сессии как минимум, но опять же ни за сессии ни за кукисы тебя пользователи магазина любить не будут,

составив заказ на работе он не сможет его оплатить дома, так как заказа то и нету, а как же будет решаться проблема когда заказано больше товара чем есть например?

С этим проблем не возникает.
Можно и без сессий. Вопрос стоит в том как правильно отбирать данные с этого массива, менять кол-во и записывать обратно в куки

Точно подмечено!
Надо самы выборку и замену данных в куки наладить
Valick
Цитата (VladokZzz @ 25.06.2015 - 20:15)
Надо самы выборку и замену данных в куки наладить

вы совсем не рядом
корзины покупателей - это должна быть таблица в БД на сервере.



_____________
Стимулятор ~yoomoney - 41001303250491
VladokZzz
Цитата (Valick @ 25.06.2015 - 17:21)
Цитата (VladokZzz @ 25.06.2015 - 20:15)
Надо самы выборку и замену данных в куки наладить

вы совсем не рядом
корзины покупателей - это должна быть таблица в БД на сервере.

А я с сессиями работать не умею. Вот и сделал на кукисах.
VladokZzz
Удалось написать выборку для каждого товара из кукиса (в куках 3 товара)

$arr = explode(',', $_COOKIE['cart']);
$where_in = array();

foreach($arr as $item)
{
$where_in[] = (int)$item;
}
$c=count($where_in);

for($i=0;$i<$c;$i++)
{
for($ii=0; $itemid[0] != $irow[id]; $ii++)
{
$itemid = explode(':', $arr[$ii]);
if($itemid[0] == $irow[id]) echo $itemid[0].'('.$itemid[2].' шт.)';
}
}

Выводится 3 товара
id (шт.)
id (шт.)
id (шт.)

Теперь осталось понять как заменить инфу в куках, в которых содержится следующая инфа
223:М:4,1124:L:1,15::2 на 223:М:4,1124:L:2,15::2 ?
Тобишь в arr[1] заменить последнюю цифру 1 на 2 (вместо 1124:L:1 сделать 1124:L:2) и собрать всю строку с товарами
sergeiss
Не извращайся и используй формат JSON. Его легко кодировать-декодировать как в ПХП, так и в JS.

Вот только про кукисы забудь, как о страшном сне smile.gif Для корзины они не годятся. Только если чисто попрактиковаться.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
VladokZzz
Цитата (sergeiss @ 25.06.2015 - 18:46)
Не извращайся и используй формат JSON. Его легко кодировать-декодировать как в ПХП, так и в JS.

Вот только про кукисы забудь, как о страшном сне smile.gif Для корзины они не годятся. Только если чисто попрактиковаться.

А чем плохо? )
В общем разобрался сам. Поломал голову пару тройку часов.

$arr = explode(',', $_COOKIE['cart']);
$where_in = array();

foreach($arr as $item)
{
$where_in[] = (int)$item;
}
$c=count($where_in);

for($ii=0; $itemid[0] != $irow[id]; $ii++)
{
$itemid = explode(':', $arr[$ii]);
if($itemid[0] == $irow[id] AND $_GET[quant] == $irow[id])
{
$f = $itemid[0].':'.$itemid[1].':'.$itemid[2];
if(isset($_GET[up])) $q = $itemid[2]+1;
elseif(isset($_GET[down]) AND $itemid[2]>1) $q = $itemid[2]-1;
elseif(isset($_GET[down]) AND $itemid[2]<2) $q = 1;
$f2 = $itemid[0].':'.$itemid[1].':'.$q;
$main = str_replace($f,$f2,$_COOKIE['cart']);
}
}
sergeiss
VladokZzz, JSON хорош тем, что ты можешь достаточно сложные объекты в него запаковать и вытащить, всего одним ловким движением.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.