За последние 24 часа нас посетили 68325 программистов и 1651 робот. Сейчас ищут 1022 программиста ...

Добавление товара в несколько категорий

Тема в разделе "Прочие вопросы по PHP", создана пользователем Kubert, 12 авг 2010.

  1. Kubert

    Kubert Активный пользователь

    С нами с:
    12 авг 2010
    Сообщения:
    12
    Симпатии:
    0
    Возьмем к примеру некий продукт, который добавляется в админке, каким образом добавить сразу в две категории этот товар. Ведь у нас в строчке с товаром в mysql есть столбец "К какой категории принадлежит данный продукт"... К примеру некая категория имеет id_category = 5. То в таблице продуктов будет такая строчка

    Код (Text):
    1.  
    2. id_tovar     id_category     name
    3. 0001         5               Название продукта



    При нахождении в этой "Пятой" категории. мы и будем видеть этот товар. Но во всех остальных мы его не подгружаем...

    Натолкните на мысль, так как нужно реализовать.
    Спасибо!
     
  2. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Три таблицы
    1 id_tovar name
    2 id_category name
    3 id_tov id_cat
     
  3. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
  4. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Devzirom
    лол, покажи запрос на выборку товаров из определённой категории!!
     
  5. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    [sql]SELECT * FROM `Table`
    WHERE INSTR(`category_id`, '5')[/sql]

    Где 5 - Id Категории
     
  6. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Примерная структура:

    [sql]--
    -- MySQL 5.1.36
    -- Thu, 12 Aug 2010 17:29:01 +0000
    --

    CREATE TABLE `tovars` (
    `tovar_id` int(10) unsigned not null auto_increment,
    `category_id` varchar(255) not null,
    `name` varchar(255) not null,
    PRIMARY KEY (`tovar_id`),
    UNIQUE KEY (`name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4;

    INSERT INTO `tovars` (`tovar_id`, `category_id`, `name`) VALUES ('1', '1,4', 'Яйцо');
    INSERT INTO `tovars` (`tovar_id`, `category_id`, `name`) VALUES ('2', '2,3', 'Молоко');
    INSERT INTO `tovars` (`tovar_id`, `category_id`, `name`) VALUES ('3', '5,1', 'Огурец');

    CREATE TABLE `categories` (
    `id` int(10) unsigned not null auto_increment,
    `category` varchar(255) not null,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`category`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6;

    INSERT INTO `categories` (`id`, `category`) VALUES ('1', 'Первая категория');
    INSERT INTO `categories` (`id`, `category`) VALUES ('2', 'Вторая категория');
    INSERT INTO `categories` (`id`, `category`) VALUES ('3', 'Третья категория');
    INSERT INTO `categories` (`id`, `category`) VALUES ('4', 'Четвертая категория');
    INSERT INTO `categories` (`id`, `category`) VALUES ('5', 'Пятая категория');[/sql]
     
  7. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    лол, классного говна можно сделать из обычной связки один-ко-многим
     
  8. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    ударься об стену, у тебя наверно три тавара в дух категориях всегда было... это медленно
     
  9. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    У каждого метода свои плюсы и недостатки. Вы хотели запрос, вы его получили. Биться об стену - занятие для бездельников.
     
  10. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
  11. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Devzirom
    блин столько умников развелось, капец.
    Пиши, ради Бога, я буду больше тебя денег получать с помощью того, что я написал. ГЫГЫГЫГЫ
     
  12. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Костян
    Напиши решение лучше
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    например
    Код (Text):
    1. +--------+------------+----------+
    2. |   id   |    name    | category |
    3. +--------+------------+----------+
    4. | jQ18hd | iPhone 3GS |    17    |
    5. +--------+------------+----------+
    6. | jQ18hd | iPhone 3GS |    18    |
    7. +--------+------------+----------+
    8. | jQ18hd | iPhone 3GS |    21    |
    9. +--------+------------+----------+
    10. | jQ18hd | iPhone 3GS |   3497   |
     
  14. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Ensiferum
    я же написал, что не видно?
     
  15. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    или чтобы не хранить много копий name для одного товара - отдельная таблица id и категории. Это решение "с ходу", но вроде жизнеспособно.
     
  16. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    блин, тут явно просматривается связь многие ко многим - три таблицы всё это описывают
     
  17. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    это? :D
     
  18. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Ensiferum
    а что, тебе дамп базы дать? ;)) или чёто не понятно?
     
  19. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Я понимаю, что краткость - сестра таланта, но другие в ответах дают столько информации, чтобы было понятно топикстартеру, прикидывая по его посту уровень знаний. Как думаешь, всем понятно стало, что ты хотел сказать в своем посте?
     
  20. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Ensiferum
    я думаю там всё довольно понятно. Что ты не понял конкретно, я объясню?