|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
|
Вывод товара из базы для нескольких категорий04.02.2011, 23:46. Показов 11895. Ответов 15
Метки нет (Все метки)
Добрый вечер!
Попалась следующая задача: есть две таблицы в базе данных: 1. Таблица с товарами - tovars; 2. Таблица с категориями - category; В таблице tovars есть столбец, который содержит в себе номера (идентификаторы category) категорий, то есть каждому товару сопоставлено значение (INT) категории, в которой он должен располагаться? [IMG]http://i028.***********/1102/1f/2450693afef5.gif[/IMG] Как сделать, чтобы один товар мог принадлежать нескольким категориям! Сайт уже почти готов и не хотелось бы создавать еще одну таблицу в базе...
0
|
|
| 04.02.2011, 23:46 | |
|
Ответы с готовыми решениями:
15
Вывод категорий товара в магазине Вывод множества родительских категорий товара - с неограниченной вложенностью Сложная задача - Вывод товара и всех его категорий |
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
|||
| 05.02.2011, 11:11 | |||
|
Если же вы не хотите создавать еще одну таблицу, то можете хранить список категорий в базе, просто перед запросом этот список нужно сериализовать, но тут уже придется повозиться, так как необходимо вытягивать все товары + отфильтровывать нужные.. Вам это надо?..
1
|
|||
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
|
| 05.02.2011, 11:55 [ТС] | |
|
Создание промежуточной таблицы типа этой???
[IMG]http://s008.***********/i306/1102/05/4c10b65d3f1e.jpg[/IMG]
0
|
|
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
|
| 05.02.2011, 12:18 | |
|
Luter1984, да
1
|
|
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
|
| 05.02.2011, 12:22 [ТС] | |
|
Но как задать связи этой таблицы с таблицой товаров, где уже есть свой id как auto_increment???
0
|
|
|
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
|
|
| 05.02.2011, 12:49 | |
|
0
|
|
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
|
| 05.02.2011, 13:03 [ТС] | |
|
Последующая обработка будет очень сложной, начнутся проблемы с выборкой....(для моего кода это точно)
0
|
|
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
|||
| 05.02.2011, 13:07 | |||
|
1. При "создании" товара указываем к каким категориям он относиться 2. Добавляем товар в БД и сохраняем его id, который можно легко узнать после выполнения запроса 3. Добавляем в таблицу зависимостей записи вида id -> category_id Добавлено через 1 минуту
1
|
|||
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
||
| 05.02.2011, 13:36 [ТС] | ||
|
Добавлено через 10 минут Предположим есть товар...Мяч Я вписываю в поля формы всю информацию по этому товару (предположим их три: id, title, text)... Через checkbox отмечаю к каким категориям будет принадлежать этот товар. Т.е. в качестве значений checkbox передаю массив обработчику с идентификаторами категорий... Переходим к обрабочику формируем запрос на добавление информации по товару в таблицу tovars Также в обработчик поступает и массив с id категорий, что с ним делать? Т.е. как занести в базу информацию, что этот товар будет принадлежать именно к этим категориям?
0
|
||
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
||||||
| 05.02.2011, 13:48 | ||||||
|
Ну сделать в цикле n-число sql запросов
Например, чисто схематичный код
1
|
||||||
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
|
| 05.02.2011, 13:57 [ТС] | |
|
А "n-число sql запросов" не повлияет на работу скриптов (ну типа скорости загрузки страниц и т.д.)
![]() И Как составить SQL запрос на создание table_cat_tov, ведь именно зависимости id -> category_id не представляю как реализовывать (работаю в phpMyAdmin)
0
|
|
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
||||||||
| 05.02.2011, 14:13 | ||||||||
|
Таблицу в БД, с помощью PhpMyAdmin, создают так: 1. выбираем БД 2. Кликаем по "создать новую таблицу" Или запросы типа
1
|
||||||||
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
|||||||||||
| 05.02.2011, 14:28 [ТС] | |||||||||||
|
Раньше выборка товаров из таблицы по категории проходила как:
Т.е пользователь, который нажал по ссылке, реализованной в коде:
Сейчас как я понимаю $methody будет уже не числом, а массивом....Или не так? Если не так, то как извлечь товар для категории...
0
|
|||||||||||
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
|||||||
| 05.02.2011, 14:36 | |||||||
|
1. Выбираем все id товаров с условием category_id = $cat_id; $cat_id - id текущей категории 2. Выбираем товары из таблицы товаров с условием
1
|
|||||||
|
5 / 5 / 2
Регистрация: 20.01.2011
Сообщений: 75
|
||||||||||||||||||||||
| 06.02.2011, 02:00 [ТС] | ||||||||||||||||||||||
|
Столкнулся с весьма интересной проблемкой.... Может кто знает из-за чего она происходит...
Через форму добавляется товар, выбор категорий для которого происходит в этой форме через checkbox: Код:
Добавляем первый товар (id, которого предположим формируется как 27) Данные о товаре добавились в таблицу с описанием товара Извлекся в обработчике id товара (27) и добавился в промежуточную таблицу (два поля id_tovars и id_category). Пошли добавлять еще один товар: А вот здесь происходит просто мистика: Если выбрать категории для товара, отличные от предыдущих, то в промежуточную таблицу попадет новый id товара, а если снова в checkbox выбрать те же категории, то товар попадет в базу (в промежуточную таблицу) с id прошлого товара....Как можно это исправить?..... Добавлено через 5 часов 42 минуты Ведь получается, что нужно сохранить результат SQL запроса на выборку всех id товаров в массив, который затем будет использоваться как условие для выборки данных о конкретном товаре и представлении его к категории...
0
|
||||||||||||||||||||||
|
49 / 49 / 4
Регистрация: 31.01.2011
Сообщений: 156
|
||
| 06.02.2011, 09:49 | ||
|
1
|
||
| 06.02.2011, 09:49 | |
|
Помогаю со студенческими работами здесь
16
Получение количества товара к каждой из категорий с учетом дочерних категорий Вывод товаров из нескольких категорий Где в документации написано про вывод записей из нескольких категорий через url /category/slug1+slug2 ? Вывод из базы нескольких значений одного параметра Вывод нескольких элементов из базы данных (отсекание) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|