Вывод товара в корзине

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Вывод товара в корзине

Re: Вывод товара в корзине

arhat78 » 21 июл 2014, 18:13

Duncon, конечно Вы правы, всё так... Это теоретически, а на практике пока не очень получается....... Задачка осталась не очень сложная (на первый взгляд), но пока не грызётся-надеюсь терпенье и труд всё перетрут :)

Re: Вывод товара в корзине

Duncon » 21 июл 2014, 17:04

Читать нужно только про базовые вещи, синтаксис языка: операторы, строки, массивы, объекты, классы, сессии, куки, операции с переменными, приведение типов итп и как с этим работать и в чём разница, про типы переменных следует уделить особое внимание в php это реализовано необычно.. Конечно же можно в и на угад кодить, глядишь что получится (вон великий битрикс по ходу так написан, джумлы и всякие там юми и прочие)..
Вам никто не мешает читать и кодить сразу чтоб на практике прочувствовать..

Есть ещё один способ изучить язык: ставится задача и сидишь пишешь код и в каждой точке в которой не уверен задаёшь себе вопрос почему так а не там или как можно ещё, а что это значит $var и $$var итд итп, часто быстрее и проще делать мелкие тесты по месту...
И лучше проверять написанное в учебниках и на сайтах, часто можно встретить неправильное толкование операторов == и === пишут обратно действительности.. Подобное в учебниках часто встречается..
Так же полезно найти в интернете несколько тестов производительности / оптимизации кода..

Самое главное не лениться и тратить на все эти мелочи время, только тогда всё пойдёт как по маслу, когда понимаешь каждую скобку в том что пишешь.. И я бы не советовал сразу браться за что-то очень сложное, лучше от простого к сложному идти, иначе вполне возможен вариант что не справишься и это негативно повлияет на оценку ситуации в целом и может отбить всякое желание что-то делать дальше..

Re: Вывод товара в корзине

arhat78 » 21 июл 2014, 16:35

Duncon писал(а): Адаптация - наверняка не правильно, без понимания происходящего так и будет продолжаться. Сидите читайте учебник по php..
Чтение учебников без практики и практических советов ни к чему не приводит :(

Re: Вывод товара в корзине

arhat78 » 12 июн 2014, 10:43

Duncon писал(а):add_to_cart это вам решать. Адаптация - наверняка не правильно, без понимания происходящего так и будет продолжаться. Сидите читайте учебник по php..

Благодарю за помощь :)

Re: Вывод товара в корзине

Duncon » 12 июн 2014, 10:32

add_to_cart это вам решать. Адаптация - наверняка не правильно, без понимания происходящего так и будет продолжаться. Сидите читайте учебник по php..

Re: Вывод товара в корзине

arhat78 » 12 июн 2014, 09:50

Duncon писал(а):Многоточие это любые действия.. в add_to_cart - return false; никогда не наступит.. И какой смысл проверять..

Функцию add_to_cart можно вообще убрать????? И правильно в предыдущем примере код адаптировал по вашему примеру......?

Re: Вывод товара в корзине

Duncon » 12 июн 2014, 01:42

Многоточие это любые действия.. в add_to_cart - return false; никогда не наступит.. И какой смысл проверять..

Re: Вывод товара в корзине

arhat78 » 11 июн 2014, 23:09

Duncon писал(а):Про case не понятно add_to_cart для наглядности бы видеть.. Continue переходит на следующий круг цикла вместо выполнения следующими за ним директивами, return прерывает выполнение, выходит из функции, останавливает выполнение кода на странице итд итп.. Вообще это базовый синтаксис php и повод для чтения..

Код: Выделить всё

function add_to_cart($id)
{
    if(isset($_SESSION['cart'][$id]))
     {
        $_SESSION['cart'][$id]++;
        return true;
     }     
     
    else
    {
        $_SESSION['cart'][$id] = 1;
        return true;
    }
        return false; 
} 
А Continue и return - вы многоточие между ними поставили, поэтому я и замялся..... :)

Re: Вывод товара в корзине

Duncon » 11 июн 2014, 23:05

Про case не понятно add_to_cart для наглядности бы видеть.. Continue переходит на следующий круг цикла вместо выполнения следующими за ним директивами, return прерывает выполнение, выходит из функции, останавливает выполнение кода на странице итд итп.. Вообще это базовый синтаксис php и повод для чтения..

Re: Вывод товара в корзине

arhat78 » 11 июн 2014, 22:09

Duncon писал(а):Намёк:
$_SESSION['cart']['id'] = '';
$_SESSION['cart']['id']['cart_size'] = '';
Логично ведь так массив строить а не $_SESSION['cart_size'][$id]
Далее просто работа с многомерным массивом

Код: Выделить всё

function addItem($id, $size, $c=1){
     foreach($_SESSION['cart'] as $key=>$items){
         if($items['id'] != $id || $items['cart_size'] != $size) Continue;
     ...
         return;
     } $_SESSION['cart'][]=array('id'=>$id,..);
} 
Это для наглядности
Я вообще стараюсь так не делать идти по пути id количество, тогда это всё выглядит как

Код: Выделить всё

function addItem($id,$c=1){
     if(isset($_SESSION['cart'][$id])) $_SESSION['cart'][$id]+=$c;
     else $_SESSION['cart'][$id]=$c;
} 

Duncon, благодарю! Есть над чем перед сном поразмыслить................. :)

Вот есть такой case добавления товара:

Код: Выделить всё

case('add_to_cart'):
      $id = $_GET['id'];
      $size = $_GET['size'];
      $_SESSION['cart_size'][$id] = $size;
      $add_item = add_to_cart($id);
      $_SESSION['total_items'] = total_items($_SESSION['cart']);
      $_SESSION['total_price'] = total_price($_SESSION['cart']);
      header('Location:index.php?view=product&id='.$id); 
   break; 
Меняю здесь и добавляю:

Код: Выделить всё

case('add_to_cart'):
      $id = $_GET['id'];
      $size = $_GET['size'];
      $_SESSION['cart']['id'] = '';
      $_SESSION['cart']['id']['cart_size'] = '';
      $add_item = add_to_cart($id);
      $_SESSION['total_items'] = total_items($_SESSION['cart']);
      $_SESSION['total_price'] = total_price($_SESSION['cart']);
      header('Location:index.php?view=product&id='.$id); 
   break; 
Затем в выводе в корзине вместо этого:

Код: Выделить всё

foreach ($_SESSION['cart'] as $id => $quantity):
         $product = get_product($id);
         
         $b['size'] = $_SESSION['cart_size'][$id];

         if (!empty($_GET['size'])) {echo $_GET['size'];} 
вставляю это:

Код: Выделить всё

function addItem($id, $size, $c=1){
     foreach($_SESSION['cart'] as $key=>$items){
         if($items['id'] != $id || $items['cart_size'] != $size) Continue;
     ...
         return;
     } $_SESSION['cart'][]=array('id'=>$id, 'size'=>$size, 'quantity'=>$c..);
}   
А вото что за Continue.........., и что return возвращает......, ещё с $c нужно как то поработать, и сам размер в таблице корзины вместо <?=$b['size'];?> как то выводить нужно......

Это за 15 минут сразу столько вопросов возникло ))))))))))))))

Вернуться к началу