Меняем все цены в Virtuemart

Давно мучал вопрос. Люди просили. В итоге, родил, ну, точнее, не то, чтобы родил, скорее поскрипел мозгом и вспомнил про оператор MySQL…Собственно, вот она — заветная строчка для Virtuemart 1.1.x:

[cc lang=’sql’ ]UPDATE `jos_vm_product_price` SET `product_price`=ROUND(product_price+(product_price/100*18), -1)[/cc]

Теперь опишу, что вся эта ботва значит 🙂

Ну, UPDATE— это оператор обновления столбца в таблице. Причем,  jos_vm_product_price— это таблица, где сидят цены, а product_price— это столбец с ценами.

Вот что говорит mysql.ru по этом операторе:

Оператор UPDATE обновляет столбцы в соответствии с их новыми значениями в строках существующей таблицы.

самое интересное идет после SET:

`product_price`=ROUND(product_price+(product_price/100*18), -1)

Что это значит. берем столбец product_priceи ко всем значениям в нем добавляем 18% (product_price+(product_price/100*18)). Полученный результат ОКРУГЛЯЕМ (ROUND) до десяти (параметр «-1«).

Вообще, оператор ROUND (X, Y) — очень в нашем деле полезная штука. X — это что округляем, а Y — насколько. Причем, если поставить «0» — будет округлять до ближайшего целого. Если «1» — будет float до десятых (10 копеек), если «2» — до сотых (до копейки). Соответственно, если поставить «-1» — он округлит до 10 рублей, если «-2» — до ста рублей.

Теперь для тех, кто в танке или только что из ГТТ вылез.

Сам по себе запрос — штука бесполезная, просто набор букв. В том виде, как он записан здесь — его надо исполнять в phpMyAdmin или другом редакторе базы. Кстати, эти апострофы находятся на букве Ё.

Для того, чтобы его адаптировать под исполнение в PHP ничего особо не требуется, просто надо прочитать на php.net, как работать с запросами в базу данных MySQL и и все станет ясно как день.

0

Добавить комментарий