Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Атрибуты и группы атрибутов
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Помог: 3 раз(а)
Здравствуйте.Есть 2 таблицы attributes и attributes_group.Как понимаете атрибуты связаны с группами ключами отношением 1 to many (в одной группе может быть несколько атрибутов, но атрибут может относится только к одной группе).Также есть переменная $attrs в которую попадают список разных атрибутов.Значение примерно такое $attrs = '2_3_6_7', то есть атрибуты с id 2,3,6,7.нужно создать модель (функцию) которая выдает примерно такой массив
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Помог: 3 раз(а)
DeepVarvar пишет:
jonston пишет:
ID берется из массива $_GET
Да хоть из ада, какая разница?
Предлагаешь мне CMS переписать?
----- $i = 0;
$i = $i++ + ++$i; ?
EuGen
Отправлено: 24 Июля, 2013 - 19:29:12
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Так понятнее. Речь о входных данных, а не о запросе.
Можно сделать так - сначала выбрать данные из БД, затем сформировать результирующий массив. Например (используется устаревший mysql_* - только для примера); проверку и валидацию данных опускаю:
$rSelect=mysql_query('SELECT *, attributes_group.id AS group_key, attrributes.id AS attribute_key FROM attributes_group LEFT JOIN attributes ON attributes_group.group_id=attributes.id WHERE attributes.id IN ('.join(',',$_GET['ids']).')');
- названия полей предположены (исходя из логики). И неймспейсинг выбран плохой - если атрибут принадлежит группе, а не наоборот, то корректнее назвать таблицу group_attributes.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
jonston
Отправлено: 24 Июля, 2013 - 19:37:47
Посетитель
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
$rSelect=mysql_query('SELECT *, attributes_group.id AS group_key, attrributes.id AS attribute_key FROM attributes_group LEFT JOIN attributes ON attributes_group.group_id=attributes.id WHERE attributes.id IN ('.join(',',$_GET['ids']).')');
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.