Помогите создать колонку в таблице SQL для товара

Статус
В этой теме нельзя размещать новые ответы.

sounde

Гуру форума
Регистрация
12 Сен 2008
Сообщения
390
Реакции
64
Привет всем!
С mysql плохо знаком, подскажите пожалуйста советом, мне нужно создать дополнительное поле в базе данных, с маленьким доп. описанием к каждому товару длинной не более 255 символов.
Как должен выглядеть запрос к БД и как потом из php к этому полю обращаться, что писать в него и читать?
Я так понял нужно добавить колонку туда же, где все данные о товаре, т.е. его название, артикул, картинки, цена и т.д. ?
 
не мучайся, сделай доп.характеристику просто и все
 
Нет, лучше поле в базе, чтобы его как хочеш выводить. Я разберусь, просто напишите как сделать таблицу, чтобы не запороть базу.
 
Нет, лучше поле в базе, чтобы его как хочеш выводить. Я разберусь, просто напишите как сделать таблицу, чтобы не запороть базу.

ALTER TABLE `SS_table` ADD `example` VARCHAR( 255 ) NOT NULL AFTER `bla_bla_bla` ;

SS_table - таблица БД куда ты будешь добавлять
example имя поля, которое собрался добавлять
bla_bla_bla - имя существующего поля, после которого ты желаешь вставить свое поле example

а что ты там в него будешь вносить и что из него будешь вытягивать.. хз смотри по аналогии существующих запросов к этой же таблицы БД(куда ты добавлял новое поле) и прописывай там имя своего, вновь созданного.
 
Спасибо , буду пробовать :)
Еще нашел в таблице поле: eproduct_filename (имя файла цифрового продукта),у него как раз 255 символов максимально, в магазине цифровых товаров не будет, может быть можно использовать это поле под свои нужды?
SS их как-то проверяет или модифицирует, если в магазине нет цифровых товаров, т.е. если я в эту таблицу буду писать свои значения, на работу SS это может повлиять интересно или нет ? :nezn:
Цифровых товаров нет ни одного и в папку продукт_файлес тоже ничего не загружал.
 
Все просто!

Чтобы добавить новое поле товару, да и вообще любой таблице, нужно просто сохранить идентичность названия. Недавно с этим столкнулся и был приятно удивлен, думал нужно будет обработчик на php переписывать, оказалось все намного проще! Объясню на примере, добавления нового поля например к статьям.

1. Добавляем например поле в таблицу SS_news_table с названием new (задаем тип хранимой в ней переменной и длину значени, если надо).
2. Теперь редактируем нужный нам шаблон для добавления данных, в нашем случае это news.admin_list.tpl.html (храниться в templates/backend/). Нужно вставить новое поле для ввода какого-то текста или еще чего-нибудь. Вставляем:
<input type=text name='DATA[new]' value='{$NewsInfo.new}'>

Обратите внимание на name='DATA[НАЗВАНИЕ СТОЛБЦА В БАЗЕ]' и value='{$NewsInfo.НАЗВАНИЕ СТОЛБЦА В БАЗЕ}'.

Все теперь вводимые данные будут сохраняться в базе и возвращаться форме при редактировании!

А действует это так, в магазине зашита функция xEscapeSQLstring которая сопоставляет параметр NAME поля формы с НАЗВАНИЕМ СТОЛБЦА В БД.

Очень был удивлен такой предусмотрительностью в скрипте.
 
Для просмотра ссылки Войди или Зарегистрируйся

А у меня че-т не получается... И с кавычками играла (добавляла-убирала), и проверяла соответствие имен, ну все по аналогии с кодом для остальных полей - получается ошибка. Где копать - не знаю...
 
Дополнение к вопросу: как правильно инициализировать новую переменную? Для которой и создавалось новое поле?
 
zadolbalos
Просто, но не настолько :)
С добавлением новых столбцов таблицу все верно написали, но в Вашем случае скорее просто повезло что из php в смарти передается весь массив из той таблицы из которой была выборка данных. Т.е. запрос в php был что-то вроде такого:
SELECT * FROM ...
т.е. тут выбирается все строки из таблицы, но довольно часто в SS в запросе из БД перечисляются имена строк которые выбираются из таблицы в БД и только они будут переданы в смарти, а если Вы добавили новые строки в таблицу ,то их нужно будет тоже добавить в запрос к БД в php скрипте.
Т.е. слепо пользоваться этим методом всетаки не стоит, но если работает , то ладно :)

Добавлено через 3 минуты
Для просмотра ссылки Войди или Зарегистрируйся

А у меня че-т не получается... И с кавычками играла (добавляла-убирала), и проверяла соответствие имен, ну все по аналогии с кодом для остальных полей - получается ошибка. Где копать - не знаю...
Нужно в php скрипте править запрос к БД, как написал выше zadolbalos в Вашем случае сделать так не получиться, в самом php коде не предусмотрены в запросах к БД эти строки, поэтому в смарти они не будут переданы, пока руками все не вставить самому :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху