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

Тема в разделе "Shop-script", создана пользователем sounde, 14 фев 2009.

Статус темы:
Закрыта.
  1. sounde

    sounde

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

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.126
    Симпатии:
    668
    не мучайся, сделай доп.характеристику просто и все
     
  3. sounde

    sounde

    Регистр.:
    12 сен 2008
    Сообщения:
    391
    Симпатии:
    64
    Нет, лучше поле в базе, чтобы его как хочеш выводить. Я разберусь, просто напишите как сделать таблицу, чтобы не запороть базу.
     
  4. Welho®

    Welho® Предвестник пьянки

    Регистр.:
    4 дек 2007
    Сообщения:
    855
    Симпатии:
    330
    ALTER TABLE `SS_table` ADD `example` VARCHAR( 255 ) NOT NULL AFTER `bla_bla_bla` ;

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

    а что ты там в него будешь вносить и что из него будешь вытягивать.. хз смотри по аналогии существующих запросов к этой же таблицы БД(куда ты добавлял новое поле) и прописывай там имя своего, вновь созданного.
     
    r-lan, Oxanita и sounde нравится это.
  5. sounde

    sounde

    Регистр.:
    12 сен 2008
    Сообщения:
    391
    Симпатии:
    64
    Спасибо , буду пробовать :)
    Еще нашел в таблице поле: eproduct_filename (имя файла цифрового продукта),у него как раз 255 символов максимально, в магазине цифровых товаров не будет, может быть можно использовать это поле под свои нужды?
    SS их как-то проверяет или модифицирует, если в магазине нет цифровых товаров, т.е. если я в эту таблицу буду писать свои значения, на работу SS это может повлиять интересно или нет ? :nezn:
    Цифровых товаров нет ни одного и в папку продукт_файлес тоже ничего не загружал.
     
  6. zadolbalos

    zadolbalos Создатель

    Регистр.:
    15 мар 2008
    Сообщения:
    13
    Симпатии:
    0
    Все просто!

    Чтобы добавить новое поле товару, да и вообще любой таблице, нужно просто сохранить идентичность названия. Недавно с этим столкнулся и был приятно удивлен, думал нужно будет обработчик на 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 поля формы с НАЗВАНИЕМ СТОЛБЦА В БД.

    Очень был удивлен такой предусмотрительностью в скрипте.
     
  7. Oxanita

    Oxanita Постоялец

    Регистр.:
    27 янв 2009
    Сообщения:
    56
    Симпатии:
    4
    http://www.nulled.ws/showpost.php?p=875257&postcount=12

    А у меня че-т не получается... И с кавычками играла (добавляла-убирала), и проверяла соответствие имен, ну все по аналогии с кодом для остальных полей - получается ошибка. Где копать - не знаю...
     
  8. Oxanita

    Oxanita Постоялец

    Регистр.:
    27 янв 2009
    Сообщения:
    56
    Симпатии:
    4
    Дополнение к вопросу: как правильно инициализировать новую переменную? Для которой и создавалось новое поле?
     
  9. sounde

    sounde

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

    Добавлено через 3 минуты
    Нужно в php скрипте править запрос к БД, как написал выше zadolbalos в Вашем случае сделать так не получиться, в самом php коде не предусмотрены в запросах к БД эти строки, поэтому в смарти они не будут переданы, пока руками все не вставить самому :)
     
    Oxanita нравится это.
Статус темы:
Закрыта.