|
|
|
| Всем привет!
Есть 2 таблицы
1. Бренды
id_br
name
descr
style
2. Стили
id_st
name
descr
Дак вот в бренде может сущ несколько стилей (style)
Т.е в бренде - > столбец style хранится id- номера Стилей вот так выглядит строка (1:4:24:)
Как мне выбрать стили которые записаны в табл бренды из таблицы Стили, чтоб узнать какие стили есть у бренда? | |
|
|
|
|
|
|
|
для: Spyder
(23.03.2007 в 14:47)
| | эта строка в одной ячейке?
Так данные не хранят.
Если у Вас стиль может соответствовать только одному бренду - переносить поле связи в таблицу стилей. Если нескольким - заводите отдельную связующую таблицу. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2007 в 15:50)
| | Да.
У бренда может быть несколько стилей.
>Если нескольким - заводите отдельную связующую таблицу.
Можно подробнее или пример связующей таблицы? | |
|
|
|
|
|
|
|
для: Spyder
(23.03.2007 в 20:45)
| | Таблица link(id_link, id_brand, id_style)
первое поле - автоинкрементный первичный ключ, второе и третье указывают идентификаторы бренда и стиля соответственно.
В таблице столько записей, сколько есть различных соответствий между брендом и стилем. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2007 в 21:30)
| | Ясно.
А как тогда добавлять новый бренд?
Т.е делать запись в таблицу линк.
Как будет выглядить запрос на добавление записей брендов, если из selecta передается массив стилей style[], т.е несколько? | |
|
|
|
|
|
|
|
для: Spyder
(25.03.2007 в 14:36)
| | Как-то так:
<?
$brand = intval($_POST['brand']);
$sql = "INSERT INTO link (id_brand, id_style) VALUES";
$sep = ' ';
foreach ($_POST['style'] as $style)
{
$sql .= "$sep($brand," . intval($style) . ')';
$sep = ',';
}
mysql_query($sql);
|
| |
|
|
|