За последние 24 часа нас посетили 35008 программистов и 1714 роботов. Сейчас ищут 1134 программиста ...

Параметры mysqli_fetch_object()

Тема в разделе "Прочие вопросы по PHP", создана пользователем HiveHicks, 12 янв 2007.

  1. HiveHicks

    HiveHicks Активный пользователь

    С нами с:
    11 янв 2007
    Сообщения:
    18
    Симпатии:
    0
    В мануале по PHP написано, что у mysqli_fetch_object() есть параметр "имя класса", то есть я так понимаю, он может на основании выборки из базы создать экземляр некого сущетсвующего класса, заполнив атрибуты какой-то информацией из выборки.

    Положим, есть класс:
    Код (Text):
    1. class Product
    2. {
    3.     public $_name;
    4.     public $_price;
    5.    
    6.     public function __construct($name, $price)
    7.     {
    8.         $this->_name  = $name;
    9.         $this->_price = $price;
    10.     }
    11.    
    12.     public function describe()
    13.     {
    14.         echo $this->_name . "<br />\n" .
    15.              "\$" . $this->_price . "<br /><br />\n";
    16.     }
    17. }
    Выборка производится следующей командой:
    Код (Text):
    1. $DB_Result0 = $DB_Ctn->query("SELECT prod_name, prod_price FROM products");
    Следующий цикл ничего не дает:
    Код (Text):
    1. while($product = $DB_Result0->fetch_object(Product))
    2. {
    3. ...
    4. }
    Лишь выводятся предупреждения:
    Код (Text):
    1. Warning: Missing argument 1 for Product::__construct() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\objective\class.Product.php on line 8
    2. Warning: Missing argument 2 for Product::__construct() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\objective\class.Product.php on line 8
    Может, кто-нибудь знает, как это работает, а то не могу нигде найти примеров?
     
  2. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
  3. HiveHicks

    HiveHicks Активный пользователь

    С нами с:
    11 янв 2007
    Сообщения:
    18
    Симпатии:
    0
    Красивая ссылочка. Вы только ткните мне носом в то место, где написано, как использовать необязательный параметр string class_name
     
  4. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    HiveHicks, так ты читал, что выводится в этих предупреждениях?

    а что он должен давать? где описание fetch_object() ?
     
  5. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    HiveHicks

    а что Вы ждете то? Вы задали в функции инициализации 2 переменных без дефолтных значений.

    в вызове класса эти параметры не переданы.. соответственно, о чем и есть предупреждение.
     
  6. HiveHicks

    HiveHicks Активный пользователь

    С нами с:
    11 янв 2007
    Сообщения:
    18
    Симпатии:
    0
    Я понимаю, почему выводятся предупреждения. Просто эта возможность меня заинтересовала - сохранять выборку из базы в атрибутах объекта не создаваемого интерпретатором, а моего собственного класса. Где не смотрел - в синтаксисе функции этот параметр (classname) стоит, а что да как - не поймешь...
     
  7. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    HiveHicks

    чем обычный mysql_fetch_object не устроил?:)
     
  8. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    HiveHicks,
    где описание функции fetch_object и что выводится?
     
  9. HiveHicks

    HiveHicks Активный пользователь

    С нами с:
    11 янв 2007
    Сообщения:
    18
    Симпатии:
    0
    да fetch_object() - это стандартный метод в PHP 5!