Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 22.05.2015, 18:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вот это лучшее представление данных в данному случае?:
"Туфли черные": 100 руб., 40 разм., 1 шт.
"Туфли красные": 110 руб., 41 разм., 1 шт.
"Туфли черные": 100 руб., 41 разм., 2 шт.

Бог с ним, хотя это и не лучшее, но хотя бы уже это представление попытаться описать массивов и подумать, как его можно использовать. А это - sprintf('id%ds%d', $id, $size), билиберда полнейшая.

Пока не будет изучен раздел РНР руководства "Справочник языка -> Типы -> Массивы" и "Расширения, относящиеся к переменным и типам -> Массивы" даже и разговаривать не о чем.
Ответить с цитированием
  #22 (permalink)  
Старый 25.05.2015, 14:28
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

laimas, перелопатил "ворохи" материала. Очень интересно по данным вами функциям - в отдельности, а вот как их собирать в одну систему??? Вот например, начнём с самого начала - есть у меня
$_SESSION['cart'] = array();

Вот как в него заносить данные, чтобы он получил вот этот ваш тип:
$_SESSION['cart'] = array(
       209 => array(
          'count' => 3,
          'price'  => 1500,
          'prop' => array('size'=>array(42 => 2, 41 => 1), 'name' => 'Галоши')
       ),
   
       150 => array(
          'count' => 2,
          'price'  => 1000,
          'prop' => array('size'=>array(40 => 1, 41 => 1), 'name' => 'Туфли')
       )
);
???????
Ответить с цитированием
  #23 (permalink)  
Старый 25.05.2015, 20:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это хорошо, что перелопачено, только плохо, что за лопатой не замечено главного, то, что к программированию отношения не имеет.

Пусть есть две бизнес модели - первая авто дилер, вторая магазин обуви. Покупка машины дело серьезное и не через корзину, это может быть только заказ услуги у дилера - показать выбранные модели или приготовить к продаже их. Вряд ли машины будут покупать как ботинки по несколько пар, а значит $_SESSION['id']++ вполне достаточно. У богатых свои причуды, если для жены покупает одну модель ВАЗа, не обломится дважды щелкнуть на Лексусе для любовницы или трижды на Майбах для любимой собачки.

Но для для интернет магазина обуви вполне норма покупать по несколько пар, и если в нем выбор как $_SESSION['id']++ в реальном бы означало - выбрали одну пару, сбегали на кассу уведомили, сбегали за второй, опять на кассу, и так пока нужное не наберем. А значит набор товара в корзину в данном случае должен быть иной, да еще учитывать и размеры. В реальном не проблема - взяли пару одного размера, еще пару иного и понесли их на кассу, в руках ли, в сумке ли, кому как удобнее. Но для интернет магазина нужно описать "несем в руках/сумке" форматом, который поймет машина, и только потом будем думать как добавлять этот выбор в корзину. Это определено?

А на большую часть вопроса добавления в корзину дает ответ сам тип данных - Array.
Ответить с цитированием
  #24 (permalink)  
Старый 26.05.2015, 21:39
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Тему не читал, ибо баянище. Если уже расжевали, еще раз вкратце:

Сообщение от arhat78
Вот как поменять код, какой применить принцип, чтобы в корзину добавлялся ботинок одного id, но с разными выбранными размерами?

У каждого размера, цвета, оттенка, отделки и тп - свой собственный артикул. Такие требования вытекают хотя бы из обычной бухгалтерской практики.

В интерфейсе каталога или витрины вы можете изображать один артикул разных цветов, но когда начнете бить чеки, вам на каждый товар потребуется _собственный уникальный идентификатор_ и желательно как число. В принципе и текст потянет, но тогда вам придется так и выбивать - зеленые шнурки фабрики Шнурок полиэстер 90 хлопок 20 г.Мск - 3 шт, красные шнурки фабрики Шнурок полиэстер 90 хлопок 20 г.Мск - 5 шт...

Последний раз редактировалось kostyanet, 26.05.2015 в 21:43.
Ответить с цитированием
  #25 (permalink)  
Старый 26.05.2015, 21:45
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от arhat78
$_SESSION['cart'] = array();
Сессия сдохнет как только браузер закроют. Вся работа ведется с куками или как я недавно узнал сейчас модно - с localStorage.
Ответить с цитированием
  #26 (permalink)  
Старый 26.05.2015, 21:49
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Это уже третий случай демонстрирующий аксиому: если ты нихера не понимаешь в торговле, то и не пытайся заделать себе интернет-магазин. Сначала мля научись торговать и вести учет в оффлайне, тогда все само собой станет понятным и выльется в сеть в лучшем виде.

Блин я даже не могу представить сколько нужно иметь извилин, чтобы взять 2 коробки с ботинками разного цвета и убедиться что баркод у них разный.

Две? Или одну?

Интернет-магазин можно скачать или купить за 300 бакс готовый, со всеми наворотами. Да и еще, варианты интерфейса где показан не товар в своем цвете, а какой-то дебильный квадратик с цветом товара - не являются коммерческими решениями. Это идиотизм программистов, которые нихера не умеют впаривать.

Последний раз редактировалось kostyanet, 26.05.2015 в 21:57.
Ответить с цитированием
  #27 (permalink)  
Старый 26.05.2015, 22:03
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от arhat78
Буду изучать новое построение конструкции корзины и всё,
Капец блин, какая там структура? Нет никакой структуру у телеги.

Ладно, что там наплел специалист по "термоядерной динамике" я не читал, но когда вы хотите показать товар то как это делаете? В урл что ли пишите весь этот Array с цветом размером и длиной шнурков? Коню ясно - пишите какой-то идентификатор по которому товар однозначно отождествляется и добывается из бд.

Так вот корзина это просто коллекция таких id, или артикулов, или индексов - чего угодно. Любой можно открыть как продуктовую страницу, а чтобы открыть все, можно или перечислить через or все идентификаторы, или запузырить их в in();

select * from prods where id in(join(',',$ids));

и все - раскручивайте в фориче обычные тумбы или таблицу или что там - и вот вам телега.
Ответить с цитированием
  #28 (permalink)  
Старый 26.05.2015, 22:07
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от arhat78
когда добавляю один ботинок с двумя разными размерами
Самое прикольное что все нужные id у него есть, просто он не мыслит такими категориями как счет-фактура и баркод. Откуда вообще возьмется другой размер или цвет в бд? ну надо сделать запись. Если запись сделана и было предусмотрено поле с автоинкрементом - появился и тот самый id. Бери, сохраняй, добывай, показывай.

В чем проблема-то? Или вы где держите сведения о размерах и цвете?
Ответить с цитированием
  #29 (permalink)  
Старый 27.05.2015, 17:59
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

kostyanet, не ругайтесь так..... Я же только учусь. Чисто для себя, без всякой коммерческой подоплёки. А вот здесь , с размерами, застрял как в болоте по шею, и не туда, и не сюда..........

Для размеров у меня отдельная таблица sizes, где есть id, boot_id (здесь id ботинка соответствует определённому размеру), и size - сам размер.
Ответить с цитированием
  #30 (permalink)  
Старый 27.05.2015, 18:05
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

laimas, чем больше погружаюсь в ваши коды, тем больше понимаю, что нихр... не понимаю...... Пробовал отдельно размер в массив занести - не получается..... С этой выборкой:
$sql = 'SELECT id, name, price FROM table_name WHERE id IN('.implode(',', array_keys(array_diff_key($order, $basket))).')';
- одни сплошные ошибки и предупреждения.

$order никак не идентифицируется. Может это не правильно или не в том месте размещаю:
if($order = array_intersect_key($_POST['order'], array_flip(array_diff(array_map('intval', array_keys($_POST['order'])), array(0))))) {
    //работаем с корзиной
}

И на все функции ..._array - предупреждения......
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить, что есть поле селект у товара borus Общие вопросы Javascript 12 23.04.2014 22:14
Вывод выбранных данных и проверка checkbox MasterHrust Javascript под браузер 3 28.09.2011 17:44
вывод jquery cookie как вывести данные из куки klubnichkaaa AJAX и COMET 2 12.08.2011 13:45
Вывод переменных MasterHrust Javascript под браузер 4 03.08.2011 15:41
Вывод данных в Друпал 6 из MySQL, небольшая работа torquemada Работа 1 22.05.2011 17:05