[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рационально ли использовать классы?
visert
В БД есть таблица свойтв Properties (ID, Name) написал такие классы:
PHP
Class Property
{
  var 
$ID;
  var 
$Name;
}

Class 
Properties
{
      function 
GetProperties()
      {
        
$query "select * from Properties";
        
$result $DB->Request($query);
        
$index 0;
        
$Property = new Property();
        while(
$row $DB->DevideRows($result))
        {
            
$Property->$ID $row["ID"];
            
$Property->Name $row["Name"];
            
$Properties[$index] = $Property;
            
$index++;
        }
        return 
$Properties;
      }
}


примерно так (код не проверял), но смысл в том, чтобы вернуть для вывода список всех свойств, запихиваю в массив объекты типа Property. Может есть другой способ вернуть список всех объектов из БД или вобще не стоит использовать классы для таких задач?



Спустя 13 минут, 32 секунды (3.02.2009 - 01:03) qpayct написал(а):
Цитата (visert @ 2.02.2009 - 21:50)
смысл в том, чтобы вернуть для вывода список всех свойств, запихиваю в массив объекты типа Property. Может есть другой способ вернуть список всех объектов из БД или вобще не стоит использовать классы для таких задач?

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

Спустя 16 минут, 15 секунд (3.02.2009 - 01:19) visert написал(а):
просто хотел узнать, при работе с БД стоит ли использовать классы... в менеджерской части у меня есть раздел свойств продукта(добавление, редактирование, удаление) при переходе туда мне нужно отобразить список всех свойств... написал классы и подумал, что для каждой записи создавать объект и запизивать его в массив, а потом выводить не рационально. Может стоит лучше делать как-то так:
PHP
$result mysql_query(" select * from Properties");
while(
$row mysql_fetch_array($result))
{
   echo(
$row["Name"]."bla bla bla";
}


?

Спустя 6 часов, 4 минуты, 34 секунды (3.02.2009 - 07:24) Sylex написал(а):
visert
столько заморочек, лучше не используй класс.

То, что реализовано у тебя в этом методе - должен вовзвращать метод объекта $DB, хоть в виде объекта, хоть в виде массива.

Каков смысл класса Property ?

Спустя 12 минут, 33 секунды (3.02.2009 - 07:37) qpayct написал(а):
насколько я понял задачу надо просто сделать один классобработки ДБ..
в него надо включить:
1.функцию добавления продукта.
2.редактирования..
3.удаления..

причём в эти функции надо посылать исключительно то, что надо обработать(допустим id продукта для удаления или строки для добавления и редактирования в зависимости от операции..)

PHP
class properties{
  public 
$id;
  public 
$name;
  
  function 
properties() {
    
// функция инициализации класса..
  
}

  function 
add($name) {
    
// функция добавления продукта..
  
}
  function 
edit($id,$name) {
    
// функция редактирования продукта..
  
}
  function 
delete($id) {
    
// функция удаления продукта..
  
}
}


точно не помню, помоему функции класса не могут возвращать значения..

Спустя 1 час, 32 минуты, 45 секунд (3.02.2009 - 09:09) sergeiss написал(а):
Дайте и мне вставить "свои 5 копеек" smile.gif

Во-первых, qpayct, ты не прав smile.gif Функции класса возвращают значения, как и любые другие функции.

Во-вторых, у топикстартера код рабочий представлен, вобщем-то. Вопрос только в том, что класс стОит использовать тогда, когда однотипные действия со сложными объектами приходится делать не один раз. В данном случае, я думаю, за время работы скрипта получение именно этих данных из БД будет разовым.
Хочется поупражняться с классами? Да пожалуйста! wink.gif Можно и с классами это сделать. Работать будет.

И в-третьих, небольшое примечание. Для добавления нового элемента в массив вовсе не обязательно использовать (как в данном случае) индекс массива, переменную $index. Можно смело ее выкинуть вообще, а в коде написать $Properties[] = $Property;, то есть вообще не указывать индекс. Тогда будет вставлен новый элемент массива, и ему будет автоматически присвоен индекс.

А в-четвертых... ЗАЧЕМ вообще возвращать весь массив? Если уж использовать класс, то и надо пользоваться всеми его преимуществами. Сделать $Properties элементом класса. И работай с ним.

PHP
Class Properties
{
      var $Properties;

      function GetProperties()
      {
        $query = "select * from Properties";
        $result = $DB->Request($query);
        if( !$result ) return false;
        $Property = new Property();
        while($row = $DB->DevideRows($result))
        {
            $Property->ID = $row["ID"];
            $Property->Name = $row["Name"];
            $this->Properties[] = $Property;
        }
        return true;
      }

      function GetProperty( $index )
      {
        return $this->Properties[ $index ];
      }

      function GetName( $index )
      {
        return $this->Properties[ $index ]->Name;
      }
      
      
....
}


Вот что-нибудь такое сделай... Можно добавить много чего сюда. В том числе и удаление отдельных элементов.

Спустя 2 часа, 22 минуты, 55 секунд (3.02.2009 - 11:32) Sylex написал(а):
верно, все зависит от поставленной задачи

Спустя 9 часов, 23 минуты, 46 секунд (3.02.2009 - 20:56) visert написал(а):
спасибо, дельно пишите
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.