Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2014, 10:37   #1
arhat78
Пользователь
 
Регистрация: 11.06.2014
Сообщений: 12
По умолчанию Вывод товара в корзине

Всем привет! В свободное от работы время изучаю PHP и тренируюсь в создании инет-магазина, и вот возник вопрос: добавляю в корзину ботинок Арт.10001 размер 20 из выпадающего списка, в корзине выводится этот ботинок с размером 20; затем добавляю этот же ботинок, но с размером 24 - а в корзине уже выводится этот последний ввод с размером 24. Вот как поменять код, какой применить принцип, чтобы в корзину добавлялся ботинок одного id, но с разными выбранными размерами? У размеров своя таблица в mysql, с id. Заранее благодарен

Добавление товара в корзину:

PHP код:
<form action="index.php" method="get">
        <input type="hidden" name="view" value="add_to_cart">
        <input type="hidden" name="id" value="<?=$product['id']?>">
        <select name="size" >
        <?PHP
        $sql
="SELECT * FROM sizes WHERE `sizes`.`id_boot`='$id' ";
        echo 
$sql.'<br>';
        
$a=mysql_query($sql);
        while (
$b mysql_fetch_array($a))
        {
              echo 
"<option  value='$b[2]' >  $b[2] </option>";
        }
        
?>
        </select>
        <input type="submit" value="Добавить в корзину">
        </form>
Это вывод в корзине:


PHP код:
foreach ($_SESSION['cart'] as $id => $quantity): $product = get_product($id);
     
            $b['size'] = $_SESSION['cart_size'][$id];
     
            if (!empty($_GET['size'])) {echo $_GET['size'];}
          ?>
     
          <tr>
              <td align="center"><?=$product['title']; ?></td>
              <td align="center">  <?=$b['size'];?> </td>
              <td align="center">  <?=number_format($product['price'],2); ?> руб</td>
              <td align="center"><input type="text" size="2" name="<?=$id?>" maxlength="2" value="<?=$quantity?>" /></td>
              <td align="center">  <?=number_format($product['price'] * $quantity ,2); ?> руб</td>
          </tr>
arhat78 вне форума Ответить с цитированием
Старый 11.06.2014, 11:47   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

В подобных ситуациях можно эффективно использовать SKU, в котором и хранить выбранную покупателем комбинацию свойств товара (размер, цвет и т.п.).
Один из принципов организации SKU товаров показан в этом примере.
Использование SKU так же очень эффективно для ведения статистики продаж и организации поставок товаров – оно позволяет отслеживать вкусы и предпочтения клиентов в различных комбинациях свойств товаров (какой цвет/размер/etc быстрее раскупают, чаще просматривают/выбирают и т.д.).
Andkorol вне форума Ответить с цитированием
Старый 11.06.2014, 15:21   #3
arhat78
Пользователь
 
Регистрация: 11.06.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
В подобных ситуациях можно эффективно использовать SKU, в котором и хранить выбранную покупателем комбинацию свойств товара (размер, цвет и т.п.).
Один из принципов организации SKU товаров показан в этом примере.
Использование SKU так же очень эффективно для ведения статистики продаж и организации поставок товаров – оно позволяет отслеживать вкусы и предпочтения клиентов в различных комбинациях свойств товаров (какой цвет/размер/etc быстрее раскупают, чаще просматривают/выбирают и т.д.).
Andkorol, да, я уже смотрел этот пример, но как применить его к моему примеру, я так и не понял.....

Ну я думаю, что можно как то через проверку сделать, типа если существует такой id и есть такой размер, то добавить новую строчку с этим же id, но с новым размером.... типа:



PHP код:
if ($product !== get_product($id)) {
    echo 
$_GET('id');
}
if (
$b['size'] !== $_SESSION['cart_size'][$id]) {
    echo 
$_GET['size'];


только не могу догнать, как же здесь добавлять новую строчку с id и размером....
arhat78 вне форума Ответить с цитированием
Старый 11.06.2014, 16:09   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

доп поле с id размера передавать - хранить в массиве
ADSoft вне форума Ответить с цитированием
Старый 11.06.2014, 16:31   #5
arhat78
Пользователь
 
Регистрация: 11.06.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
доп поле с id размера передавать - хранить в массиве
Хмммм.........
arhat78 вне форума Ответить с цитированием
Старый 16.06.2014, 19:36   #6
arhat78
Пользователь
 
Регистрация: 11.06.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
доп поле с id размера передавать - хранить в массиве
ADSoft, а что из себя представляет это допполе, и как оно выглядит в коде?
arhat78 вне форума Ответить с цитированием
Старый 21.07.2014, 16:35   #7
arhat78
Пользователь
 
Регистрация: 11.06.2014
Сообщений: 12
По умолчанию

А в ответ - тишина......................
arhat78 вне форума Ответить с цитированием
Старый 21.07.2014, 16:48   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

выглядеть может как угодно - все зависит от того кто этот код пишет...
ADSoft вне форума Ответить с цитированием
Старый 22.07.2014, 19:22   #9
arhat78
Пользователь
 
Регистрация: 11.06.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
выглядеть может как угодно - все зависит от того кто этот код пишет...
ADSoft, ну а примерно как? Как то размеры должны отдельно идентифицироваться, а не перезаписываться у одного и того же ботинка....
arhat78 вне форума Ответить с цитированием
Старый 22.07.2014, 19:58   #10
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну я бы сделал справочник характеристик
id name size
1 размер 42
2 размер 43
3 цвет красный
4 материал шелк

кросс-таблицу для товаров - определающие доступные характеристики
id_tovar id_prop
1 2
1 3

при заказе товара передвать не только id товара но и id характеристик
в корзине будет нечто такое
id_tovar harakter
1 2,4,5
1 3,1
что будет означать что заказаны
1) ботиники с характеристиками 2,4,5 (напр размер 43, красные, кожа)
2) ботинки той же модели, но с характеристиками 3,1 (46 и зеленые)


а в корзину ложите id товара
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Woocommerce + Qtranslate (некорретный перевод в корзине) maksimum WordPress и другие CMS 1 21.05.2014 23:24
Вывод товара со скидкой и без скидки ARB Помощь студентам 0 03.03.2014 18:28
Вывод ошибки при недостаче товара pr1nc1k БД в Delphi 0 04.06.2013 22:25
Найти ошибку в корзине PavelACM PHP 1 31.08.2012 19:11
Работа с циклами, Не обнавляется кол-во товара в корзине bboyb-rock PHP 4 08.04.2011 19:14