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
Форумы портала PHP.SU :: Версия для печати :: Задание свойств объекта и их вывод
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Задание свойств объекта и их вывод

Страниц (1): [1]
 

1. sabriel - 23 Апреля, 2012 - 03:16:59 - перейти к сообщению
Здравствуйте. Возможно вопрос не новый, но вот что то задумался как сделать независимые свойства для определенного объекта (товар, заявка) не важно.
То есть: есть объект. Необходимо в настройках сделать ему свойства
Вес
Цвет
Форма

Например. То есть в базе будет в таблице свойств что то типа такого
1 вес
2 цвет
3 форма

К объекту будет так
id объекта 1 150
id объекта 2 красный
id объекта 3 круглый


То есть здесь пока все понятно.

Но вот потом, надо вывести эти свойства на страницу. КАК?

Можно ли это сделать одним запросом (я думаю что нет, но вдруг способ есть) или для каждого товара придется делать свой запрос потом в цикле собирать свойства? и так далее?

Прошу совета, и прошу не пинать)
2. tato - 23 Апреля, 2012 - 09:22:19 - перейти к сообщению
Примерно так:

PHP:
скопировать код в буфер обмена
  1.  
  2. $db = new PDO( "mysql:host=$host;dbname=$dbname", $user, $password );
  3.  
  4. $stmt = $db->prepare( "SELECT weight, color, form FROM tbl_name" );
  5.  
  6. if( !stmt->execute() )
  7. {
  8.     print_r( $stmt->errorInfo() );
  9. }
  10.  
  11. $result = $stmt->fetchAll( PDO::FETCH_ASSOC );
  12.  
  13. foreach( $result as $item )
  14. {
  15.      printf( "weight:%s, color:%s, form:%s", $item['weight'], $item['color'], $item['form'] );
  16. }
  17.  
3. sabriel - 26 Апреля, 2012 - 11:22:07 - перейти к сообщению
так в таблице не будет столбцов weight, color, form.
а будет что то типа
id name
1 вес

потому что эти данные (свойства) необходимо заполнять динамически, а не менять структуру БД под потребности
4. Alho - 26 Апреля, 2012 - 11:32:11 - перейти к сообщению
sabriel пишет:

потому что эти данные (свойства) необходимо заполнять динамически, а не менять структуру БД под потребности


И откуда вы собираетесь брать эти свойства?

Кстати, нет ничего в страшного в том, что бы дополнять таблицу новыми нужными столбцами.
5. sabriel - 27 Апреля, 2012 - 07:16:12 - перейти к сообщению
свойства будет задавать человек, админ, как хотите модно назвать, и для определенного вида товаров они могут быть разные.
так что дополнение таблицы полями будет неправильным,

меня же интересует как можно работать с этой структурой, или подскажите свой вариант

(про дополнения таблицы столбцами я понял, но хотелось бы услышать еще варианты) но как мне кажется тот что я написал самый универсальный. осталось решить вопрос с выводом (без цикла запросов)

 

Powered by ExBB FM 1.0 RC1