yurchec Posted April 17, 2013 Share Posted April 17, 2013 День добрый форумчане. Возникла потребность изменения типа данных в столбце при импорте товаров на сайт. Напишу суть. Есть некоторые товары (допустим устарела инфа), нужно их обновить и добавить новые. Есть случаи когда неизвестно еще количество товара или его точная цена, но нужно добавлять товар на сайт. При импорте пустых значений в базу по умолчанию присваивается 0. Вот как раз то и суть. Как лучше сделать чтоб полю цена или количество присвоить пустое значение, чтобы не было нуля. Есть вариант чтобы пропустить строку если пусто либо уже что то еще делать (например поменять тип и присвоить как пустой текст). Нужно добавить такой sql запрос в php скрипт обновления товаров. Link to comment Share on other sites More sharing options...
Kerm Posted April 17, 2013 Share Posted April 17, 2013 null Link to comment Share on other sites More sharing options...
yurchec Posted April 17, 2013 Author Share Posted April 17, 2013 null и что это за ответ ? Link to comment Share on other sites More sharing options...
sors Posted April 18, 2013 Share Posted April 18, 2013 Если у столбца price атрибут NOT NULL, то при всем желании туда не добавишь NULL. Link to comment Share on other sites More sharing options...
yurchec Posted April 18, 2013 Author Share Posted April 18, 2013 А если поменять тип поля на текстовый и присвоить пустое значение. Такой вариант вообще возможен ? Link to comment Share on other sites More sharing options...
sors Posted April 18, 2013 Share Posted April 18, 2013 Да. Только во фронт офисе все равно при конвертации валюты и после некоторых преобразований будет 0. Проще в фронт офисе в шаблоне изменить так, что при нулевой цене не показывалась цена Link to comment Share on other sites More sharing options...
xss Posted May 10, 2013 Share Posted May 10, 2013 Если я правильно Вас понимаю, то этот SQL-запрос должно помочь: ALTER TABLE <table_name> MODIFY COLUMN <column_name> <type> NULL Например ALTER TABLE ps_table MODIFY COLUMN price INT NULL Более подробно Вы можете прочесть здесь: http://phpclub.ru/mysql/doc/alter-table.html Link to comment Share on other sites More sharing options...
Kerm Posted May 10, 2013 Share Posted May 10, 2013 Выше правильно написали, проще в шаблоне добавить правило которое будет скрывать цену если ее значение равно нулю...а так вы просто лишний гемор себе придумали. Link to comment Share on other sites More sharing options...
Евгений Медведев Posted May 15, 2013 Share Posted May 15, 2013 А если поменять тип поля на текстовый и присвоить пустое значение. Такой вариант вообще возможен ? Можно, если не обращать внимания на то, что суммы потом перестанут считаться в заказах и т.п. :-). Конечно нужно шаблон править. Link to comment Share on other sites More sharing options...
absent Posted May 19, 2013 Share Posted May 19, 2013 а если в шаблоне при цене ноль, скрывать её+деактивировать кнопку купить? Link to comment Share on other sites More sharing options...
Dzianis Yurevich Posted May 20, 2013 Share Posted May 20, 2013 Вы чего ребята? Какой ALTER TABLE??!! В методах получения цены все приводится к инту. В шаблоне условие пропиши на проверку цены продукта, например так: {if $productPrice > 0}{convertPrice price=$productPrice}{/if} Если не хочешь править множество шаблонов, тогда нужно зареврайтить smarty-функцию convertPrice, в которой прописать подобное условие Link to comment Share on other sites More sharing options...
yurchec Posted May 20, 2013 Author Share Posted May 20, 2013 Условие с if'ом очень помогло. Сам запарился править тпл. Через пару дней после создания поста пришла идея просто проверить условие на цену с 0 и вуаля, этот продукт либо не обновляется либо не добавляется совсем. Link to comment Share on other sites More sharing options...
Dzianis Yurevich Posted May 21, 2013 Share Posted May 21, 2013 Условие с if'ом очень помогло. Сам запарился править тпл. Через пару дней после создания поста пришла идея просто проверить условие на цену с 0 и вуаля, этот продукт либо не обновляется либо не добавляется совсем. Возможно испортил структуру БД всякими ALTER TABLE Link to comment Share on other sites More sharing options...
yurchec Posted May 21, 2013 Author Share Posted May 21, 2013 Возможно испортил структуру БД всякими ALTER TABLE Как раз таки все ок) Всеравно на тестовой престе проверял все, на рабочий не рискнул. Условие с if'ом то что надо. Link to comment Share on other sites More sharing options...
Recommended Posts