Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

erikm

Новачок
  
  • Публікації

    12
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем erikm

  1. 41 минуту назад, chukcha сказал:

    a.text = t.model

    Т.е. я как бы отсеиваю по t таблице, а не  по p

    Логично, первым действием я ведь уже отсеял по p таблице. Программировать начал с Си, дошел до С#... с открытием магазина пришел к выводу, что нужно еще знание SQL. Запросы не сложные, но все упирается в затраченное время на их обработку. Буду учиться :)

     

    Как теперь все это обернуть в php? Я в том плане, что движек ocstore, скорее всего уже имеет встроенные функции работы с бд. Где почитать или покопаться?

    На хабра нашел код для загрузки .csv, но нет ли встроенных функций?

    Спойлер
    
    function import_csv(
    		$table,         // Имя таблицы для импорта
            $afields,         // Массив строк - имен полей таблицы
            $filename,          // Имя CSV файла, откуда берется информация 
                        // (путь от корня web-сервера)
            $delim=',',          // Разделитель полей в CSV файле
            $enclosed='"',      // Кавычки для содержимого полей
            $escaped='\\',          // Ставится перед специальными символами
            $lineend='\\r\\n',       // Чем заканчивается строка в файле CSV
            $hasheader=FALSE){      // Пропускать ли заголовок CSV
        if($hasheader) $ignore = "IGNORE 1 LINES ";
        else $ignore = "";
        $q_import = 
        "LOAD DATA INFILE '".
            $_SERVER['DOCUMENT_ROOT'].$filename."' INTO TABLE ".$table." ".
        "FIELDS TERMINATED BY '".$delim."' ENCLOSED BY '".$enclosed."' ".
        "    ESCAPED BY '".$escaped."' ".
        "LINES TERMINATED BY '".$lineend."' ".
        $ignore.
        "(".implode(',', $afields).")"
        ;
            return mysql_query($q_import);
        }

     

     

    Перед загрузкой необходимо очищать tmp_table . Скорее всего как-то так: 

    TRUNCATE TABLE tmp_table;

     

  2. 11 минут назад, n3bo сказал:

    а почему нельзя записать артикул в sku и все?)

     

    Нужно было отображение Артикула в виде атрибута с определенным классом, чтобы пользователь не искал информацию по всей форме товара. Поэтому принял такое решение

  3. 23 часа назад, chukcha сказал:

    Где у вас есть массив артикулов?

     

    Причем здесь таблица атрибутов?

    Все, сделал таблицу :) Заполнил ее данными через .csv

    CREATE TABLE tmp_table (
        model varchar(64) NOT NULL,
        quantity int(4) NOT NULL,
        PRIMARY KEY (model)
    );

     

    Артикулы у товаров заданы в виде "Модели" и Атрибута с id=4. Запрос тогда должен выглядеть так?

    update oc_product p  
    join oc_product_attribute a on a.attribute_id = '4' and a.product_id = p.product_id and a.text = p.model
    join tmp_table t on t.model = p.model
    set p.quantity = t.quantity

     

  4. 17 минут назад, chukcha сказал:

    Чего?

     

     

    Вы поясните что вы хотите..

    А то вы сейчас насочиняете запросов...

     

    И.. не забудьте!!!!! БЕКАП, БЕКАП, БЕКАП..

    Бекап само собой :)  Что хочу, написал в первом посте. Но для теста код привел для конкретных значений, а не таблиц. Вот и спрашиваю правильно или нет?

     

    19 минут назад, chukcha сказал:

    Для правильного запроса нужно еще language_id

    На сайте 1 язык

     

    P.S. Я конечно пониманию, что эти запросы будут работать. Но вот меня всегда в таких вещах заботит "на сколько хорошо". Поэтому и надеюсь на коментарии местных сторожил 

  5. С помощью запроса, проверил правильно ли я понимал где находятся нужные мне величины. Артикул у меня совпадает с моделью, а id самого атрибута "артикул" равен 4

    select 
        p.product_id, 
        d.name,
        p.model,
        p.quantity
    from oc_product p
        join oc_product_description d on d.product_id = p.product_id
    where p.model = 'Артикул';

    Для теста без таблиц такой запрос подойдет?

    update oc_product p  
    set p.quantity = 'количество'
    where p.model = 'Артикул';

    Хотелось бы еще сверить равенство модели и артикула, ведь человеческий фактор упускать нельзя:unsure:. Я так понял нужно добавить and с условием равенства. Что-то типо такого?

    update oc_product p  
    join oc_product_attribute a on a.attribute_id = '4' and a.product_id = p.product_id and a.text = p.model
    set p.quantity = 'количество'
    where p.model = 'Артикул';

     

  6. 1 час назад, chukcha сказал:

    Вы проверяли такую конструкцию?

     

    Где у вас привязка к артикулу

    1. создать временную таблицу из нужных значений

     

    2. Выполнить запрос

    Вечером освобожусь сделаю,  потом отпишусь. За наводку спасибо.  А как все таки правильнее через php или напрямую? Количество товаров в бд только в одном столбце хранится по умолчанию? 

  7. Добрый день! Помимо интернет-магазина имеется и обычный, приходится обновлять количество товаров на сайте вручную. Синхронизировать кассу с бд пока не вижу смысла, но хотелось бы иметь возможность в пару кликов обновлять, это самое, количество товаров на сайте.

     

    Предположим у меня есть массив "Артикулов" связанный с необходимым "Количеством товара". С помощью какого запроса вызывать "Товары" по "Артикулу" и менять им "Количество"? Как это грамотнее организовать: через php админки или напрямую через MySQL?

     

    P.S. по форуму копался, ничего не нашел. Но подозреваю, что такая тема должна быть... если так, то ткните пальцем пожалуйста:mellow:

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.