Перейти к содержимому



Собрать все функции в один класс

#1 wedoca

wedoca
  • Пользователь
  • 1 сообщений
  • Репутация: 0
0

Отправлено 19 Ноябрь 2013 - 09:42

Помогите пожжжалуйста новичку в ООП.
У меня есть несколько функций, результат которых - массив с полями товара.
С классами в теории знаком..
но как это все дело собрать в одну кучу - теряюсь...
В идеале, обращение к БД должно быть один раз, если на странице имеется несколько обращений к моему не существующему классу.



<?
function dbRequest($table,$sort){
mysql_connect("localhost", "bd_name", "password");
mysql_select_db("user");

$result = mysql_query("SELECT * FROM ".$table." ORDER BY ".$sort." DESC"); //b_iblock_element_property
$news = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$news[] = $row;
}
mysql_free_result($result);
return $news;
}

function propertyesKey($prop_id){
$propertys=dbRequest("b_iblock_property","ID");
foreach($propertys as $prop_list){
if($prop_list["ID"]==$prop_id){
$name=$prop_list["NAME"];
}
}
return $name;
}

function propertyList($element_id){
$property_list=array();
$property_value=dbRequest("b_iblock_element_property","IBLOCK_PROPERTY_ID");
foreach($property_value as $cell=>$value){
if($element_id==$value["IBLOCK_ELEMENT_ID"]){
$property_list[$value["IBLOCK_PROPERTY_ID"]]=array(
"NAME"=>propertyesKey($value["IBLOCK_PROPERTY_ID"]),
"VALUE"=>$value["VALUE"]
);
}
}
return $property_list;
}

function elementID($id){
$element=dbRequest("b_iblock_element","id");
foreach($element as $key=>$list){
if($id==$list["ID"]){
$element_array=$list;
$element_array["PROPERTY"]=propertyList($list["ID"]);
}
}
return $element_array;
}
?>

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>bElement</title>
</head>
<body>
<pre>
<? print_r(elementID(778));?>
</pre>
</body>
</html>


Выводимый результат
Array
(
	[ID] => 778
	[NAME] => Стол и 4 стула
	[PREVIEW_TEXT] => Столешница покрыта меламином - устойчивая к воздействию влаги и повреждениям отделка, которую легко поддерживать в чистоте.
   ...
   ...
	[PROPERTY] => Array
		(
			[99] => Array
				(
					[NAME] => Максимальная цена
					[VALUE] => 7000.00
				)
   ...
   ...
)

 

 

  • 0

#2 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 25 Ноябрь 2013 - 09:26

но как это все дело собрать в одну кучу - теряюсь...

Если теряешься, значит еще почитай информацию по классам. Изучи суть и принцип ООП.
Разбери два основных понятия: инкапсуляция и полиморфизм. Что это, для чего и почему.

Что бы было легче и проще, начни работать с готовыми классами, а не создавай свои. Например можно для начала использовать готовые классы для работы с БД.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.



Оформление форума – IPBSkins.ru