Форум русской поддержки Joomla!® CMS
10.12.2016, 03:13:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6 7   Вниз
  Добавить закладку  |  Печать  
Автор

Полезные для базы магазина SQL команды

 (Прочитано 24945 раз)
0 Пользователей и 1 Гость смотрят эту тему.
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« : 01.07.2010, 17:36:31 »

Всем привет, чёт не нашёл на форуме как так сделать, пришлось по логике... php и sql знаю не много, но расскажу, мож пригодится таким же как я...
в общем заходим в phpMyAdmin, выбираем нашу базу, потом заходим в SQL и пишем запрос:
Код:
UPDATE jos_vm_product_price SET product_price = product_price+100
запускаем и имеем увеличение цены на 100 ед.
« Последнее редактирование: 11.07.2010, 17:00:47 от skyscraper » Записан
 
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« Ответ #1 : 02.07.2010, 11:34:11 »

если надо только для товаров дешевле 1000
Код:
UPDATE `jos_vm_product_price` SET product_price = product_price+100 WHERE (product_price <1000)
Записан
xTMx
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 146



« Ответ #2 : 07.07.2010, 13:19:50 »

по хорошему  была уже мысль написать типовые запросы в базе, чтоб неопытные сразу смотрели то что их интересует
типа
"разом изменить шаблоны категорий товаров\флайпэйджев и тд"
и прочие подобные фичечки)
но никак руки не дойдут)
Записан
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« Ответ #3 : 11.07.2010, 16:59:48 »

переименовал тему, пиши что знаешь, все команды будут полезны =)
Записан
Naima
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 28


« Ответ #4 : 15.07.2010, 14:14:42 »

Ой! Какая полезная тема и какой замечательный команд!! Спасибо за тему. Буду следить. Может, от себя со временем чего-нить подкину.
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #5 : 16.07.2010, 09:53:31 »

Устанавливает ярлычок NEW для всего товара ( в теме http://joomlaforum.ru/index.php/topic,119541.0.html)
UPDATE jos_vm_product SET product_is_new = 1

Ноль, соответственно, убирает ярлычок.

Также можно управлять всеми другими полями - цена, краткое описание и т.д.

Прошу помощи - необходимо в запросе выбрать конкретную категорию - то есть управлять полями товара только в определенной категории.

- ниже уже есть ответ.
« Последнее редактирование: 12.09.2010, 21:54:20 от adjuster » Записан
igoryk
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Сообщений: 199


« Ответ #6 : 17.07.2010, 01:53:27 »

Когдато сам долго искал - может кому сгодиться...
запрос БД на регионы Украини, тобиш области... Открываем phpMyAdmin, переходим в базу даных и в вкладке SQL делаем SQL-запрос

Код:
DELETE FROM `jos_vm_state` WHERE `country_id` = 220;
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Автономна Республіка Крим', 'AK', '01');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Вінницька область', 'VN', '02');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Волинська область', 'VL', '03');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Дніпропетровська область', 'DN', '04');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Донецька область', 'DO', '05');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Житомирська область', 'GT', '06');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Закарпатська область', 'ZK', '07');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Запорізька область', 'ZP', '08');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Івано-Франківська область', 'IF', '09');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Київська область', 'KY', '10');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Кіровоградська область', 'KR', '11');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Луганська область', 'LY', '12');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Львівська область', 'LV', '13');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Миколаївська область', 'MK', '14');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Одеська область', 'OD', '15');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Полтавська область', 'PL', '16');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Рівненська область', 'RV', '17');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Сумська область', 'SM', '18');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Тернопільська область', 'TR', '19');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Харківська область', 'HK', '20');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Херсонська область', 'HS', '21');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Хмельницька область', 'HM', '22');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Черкаська область', 'CHK', '23');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Чернівецька область', 'CHN', '24');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Чернігівська область', 'CHH', '25');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'м Київ', 'KYEV', '26');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'м Севастополь', 'SEV', '27');

нажимаем ОК и и меем все области Украины
Записан
Soil
Осваиваюсь на форуме
***

Репутация: +10/-0
Offline Offline

Пол: Мужской
Сообщений: 51


это я


« Ответ #7 : 20.07.2010, 01:39:09 »

Хорошую тему создал. Некоторые вещи я бы хотел реализовать у себя в программе: http://joomlaforum.ru/index.php/topic,101686.0.html
Записан
xTMx
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 146



« Ответ #8 : 22.07.2010, 11:52:57 »

Вот еще держите
Код:
update  jos_vm_category set products_per_row=4;
Делает так,чтобы во всех категориях изменился параметр "показать товаров на строке" ( стоит 4, но можно поставить нужное кол-во)
и вот еще. если вы поставили на сайте новую тему VirtueMart и хотите выбрать флайпейдж сразу везде
Код:
update  jos_vm_category set category_flypage="flypage.tpl";
( вместо flypage.tpl пишем нужное название файла)
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #9 : 22.07.2010, 16:38:11 »

xTMx
Красавчег!!
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #10 : 15.08.2010, 11:25:39 »

http://joomla-book.ru/development/extension/examples-of-mysql-queries
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #11 : 15.08.2010, 12:15:05 »

Меняем цену на всем товаре в выбранной категории (строим более сложные запросы):

Цитировать
update `jos_vm_product_price`
set `product_price` = 490
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)

Вставим цену 490 у всего товара из категории 35.
Записан
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« Ответ #12 : 16.10.2010, 13:45:24 »

У меня была такая задача, в одной категории было 1000 товаров с детьми, запрос очень долгий, поэтому решил оставить только подкатегории и удалил товары из категории id=21...

Цитировать
DELETE FROM jos_vm_product_category_xref WHERE category_id=21

можно ещё условие вставить where ((category_id>5) AND (category_id<20))
« Последнее редактирование: 10.11.2010, 19:41:35 от skyscraper » Записан
andx
Осваиваюсь на форуме
***

Репутация: +6/-0
Offline Offline

Сообщений: 111


« Ответ #13 : 08.12.2010, 19:00:57 »

Подскажите пожалуйста команду, которая выставила бы определенную цену на определенный артикул.
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #14 : 13.12.2010, 11:11:23 »

Подскажите пожалуйста команду, которая выставила бы определенную цену на определенный артикул.
Обычно такие вещи делаются проще - через администрирование магазина, но ответ вот:
Код:
update `jos_vm_product_price`
set `product_price` = 490 where `product_id` in (SELECT `product_id` FROM `jos_vm_product` WHERE `product_sku` = 4850)

Где 490  - это цена, 4850 - Актикул товара.
« Последнее редактирование: 13.12.2010, 11:18:28 от adjuster » Записан
tom1501
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 22


« Ответ #15 : 13.12.2010, 21:53:45 »

а как реализовать запросом скидку 10% на весь товар?
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #16 : 14.12.2010, 12:19:22 »

а как реализовать запросом скидку 10% на весь товар?
Наверно так:
Точно так:
UPDATE jos_vm_product_price SET product_price = product_price*0.9

Соотственно, скидка на весь товар в определенной категории:

Цитировать
update `jos_vm_product_price`
set `product_price` = product_price*0.9
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)
« Последнее редактирование: 14.12.2010, 12:32:13 от adjuster » Записан
andx
Осваиваюсь на форуме
***

Репутация: +6/-0
Offline Offline

Сообщений: 111


« Ответ #17 : 15.12.2010, 10:31:11 »

adjuster
большое спасибо, заплюсовал! Через админку это понятно как белый день.. Мне это нужно для bash скрипта, я с помощью него теперь могу сделать большой список из запросов, где каждая строка будет с индивидуальным артикулом и ценой. Предназначенный для этого CSVimproved работает неадекватно - после изменения цен сбивает производителя у товаров.
Записан
tom1501
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 22


« Ответ #18 : 16.12.2010, 01:32:42 »

Наверно так:
Точно так:
UPDATE jos_vm_product_price SET product_price = product_price*0.9

Соотственно, скидка на весь товар в определенной категории:


спасибо, но немного не это требуется ))

нужно, чтобы именно скидка на фронте присутствовала (типа старая цена, новая цены, экономия 10%), а не уменьшение цены всех товаров на -10%.
Записан
flyingspook
Moderator
*****

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #19 : 16.12.2010, 02:01:58 »

Цитировать
нужно, чтобы именно скидка на фронте присутствовала (типа старая цена, новая цены, экономия 10%), а не уменьшение цены всех товаров на -10%.
это в админке выставляется
-цена
и
-цена со скидкой

Записан
andx
Осваиваюсь на форуме
***

Репутация: +6/-0
Offline Offline

Сообщений: 111


« Ответ #20 : 17.01.2011, 12:04:06 »

у кого линукс, держите скрипт для составления списка запросов для изменения цен. Делаете текстовый файл input.txt, в котором каждая строка это артикул и через пробел цена. И этот файл подсовываете в этот скрипт:
Код:
cat input.txt | awk '{print "update `jos_vm_product_price` set `product_price` =",$2,"where `product_id` in (SELECT `product_id` FROM `jos_vm_product` WHERE `product_sku` =",dq $1 dq");"}' dq='"' >sql.txt

на выходе получаете файл sql.txt, из которого копируете список запросов и далее употребляете их по назначению Azn
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #21 : 27.01.2011, 12:30:50 »

Добавляем товары в категории пачками:

В моем случае по куску имени товара:
Цитировать
update `jos_vm_product_category_xref`
set `category_id` = 143
where `product_id` in (
                       SELECT `product_id`
                       FROM `jos_vm_product`
                       WHERE `product_name` LIKE '%арген%')

Где ID категории = 143
А кусок имени арген (аргентинская шесть)

Цитировать
update `jos_vm_product_mf_xref`
set `manufacturer_id` = 2
where `product_id` in (
                       SELECT `product_id`
                       FROM `jos_vm_product`
                       WHERE `product_name` LIKE '%арген%')
А здесь меняем у этого товара производителя
« Последнее редактирование: 27.01.2011, 13:06:46 от adjuster » Записан
bestvinyl
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 27



« Ответ #22 : 03.02.2011, 15:20:20 »

В своё время форум мне очень помог, но недавно возник вопрос, на который не мог нигде найти ответ: Как не тыкать на каждый товар чтобы установить новую цену или новые свойства, а сделать это "одним щелчком мыши". У меня общее кол-во товаров приближается к 3000, внутри каждой категории 50-200 товаров и иногда возникает желание превратить два дня работы в один час:)
Про цену нашел информацию в интернете:
Заходите в phpmyadmin и пишите запрос к БД:
update `jos_vm_product_price`
set `product_price` = 490
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)
490- новая цена, 35- id категории, товары в которой приобретают эту новую цену

Изменение свойств:
update `jos_vm_product` set `attribute` = 'Добавить в комплект защитную пленку на экран,Прозрачная защитная пленка[+99],Без защитной пленки'
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)
'....'- новые свойства в виде 'свойство1,позиция1.1[+200],позиция1.2[=456];свойство2,позиция2.1[-200],позиция2.2[=4056]', 35- id категории, товары в которой приобретают установленные свойства

Пример, как можно использовать возможности свойств: http://www.bestvinyl.ru/shop/details/2894/24/vinil-dlya-noutbukov/11-156-dyuymov/vinilovaya-nakleyka-dlya-noutbuka-11-156-dyuymov-43.html Старался долго Grin
« Последнее редактирование: 03.02.2011, 18:06:15 от bestvinyl » Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #23 : 03.02.2011, 17:17:26 »

bestvinyl
Вот теперь держи плюс.
Записан
fedorkit
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17



« Ответ #24 : 15.02.2011, 18:53:36 »

если у кого какой вопрос по SQL-запросам созреет - спрашивайте, попробую помочь
Записан
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« Ответ #25 : 16.02.2011, 11:23:34 »

а у меня следующая проблема, х3 как, но в базе 2 цены на 1 товар и при этом часто показывает неправильную цену....
думаю надо сделать запрос и очистить jos_vm_product_price от лишних цен если удлалить строчку с одинаковым product_id, но меньшим cdate...


поправьте кто знает:
Цитировать
DELETE DISTINCT product_id FROM jos_vm_product_price where cdate < cdate
« Последнее редактирование: 16.02.2011, 12:09:31 от skyscraper » Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #26 : 17.02.2011, 14:08:12 »

а у меня следующая проблема, х3 как, но в базе 2 цены на 1 товар и при этом часто показывает неправильную цену....
думаю надо сделать запрос и очистить jos_vm_product_price от лишних цен если удлалить строчку с одинаковым product_id, но меньшим cdate...


поправьте кто знает:

Цитировать
delete from vm_product v1
where v1.cdate <> (select max(v2.cdate)
                   from vm_product v2
                   where v2.product_sku = v1.product_sku
                  )
Проверь так )
Записан
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« Ответ #27 : 17.02.2011, 15:08:28 »

adjuster, попробовал как ты и так
Цитировать
DELETE FROM jos_vm_product_price v1 WHERE v1.cdate <> ( SELECT max( v2.cdate )
FROM jos_vm_product_price v2
WHERE v2.product_id = v1.product_id )

но везде ошибка
Цитировать
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where v1.cdate <> (select max(v2.cdate)
                   from jos_vm_product_' at line 2
Записан
adjuster
Завсегдатай
*****

Репутация: +55/-2
Offline Offline

Пол: Мужской
Сообщений: 791


« Ответ #28 : 17.02.2011, 18:15:08 »

Цитировать
select *
FROM jos_vm_product_price v1 WHERE v1.cdate <> ( SELECT MAX( v2.cdate )FROM jos_vm_product_price v2 WHERE v2.product_id = v1.product_id )
А так работает? - если да, то нет разрешения удалить при таком запросе.
Записан
skyscraper
Давно я тут
****

Репутация: +47/-2
Offline Offline

Сообщений: 252



« Ответ #29 : 18.02.2011, 17:49:30 »

пасиб, запрос выбрал все товары по дате, потом выделил и удалил в ручную.. +
Записан
Страниц: [1] 2 3 4 5 6 7   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet