За последние 24 часа нас посетил 62041 программист и 1677 роботов. Сейчас ищут 944 программиста ...

Получить данные из объекта

Тема в разделе "PHP для новичков", создана пользователем rewuxiin, 16 мар 2014.

  1. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    php 5.
    только вникаю в ООП но что то сложнее чем возврат TRUE после итерации в функции не получается.

    пытаюсь получить из базы массив и по ключам вывести.
    с подключением к базе и получением данных все ОК, не могу понять почему в $сategory->id; не поступают значения.

    подскажите что я неверно делаю

    Код (Text):
    1.  
    2. class Shop{
    3.     public $id;
    4.     public $name;
    5.     public $title;
    6.     public $description;
    7.     public $image;
    8. }
    9.  
    10. class Category extends Shop {
    11.     public $id;
    12.     public $name;
    13.     public $title;
    14.     public $description;
    15.     public $image;
    16.        
    17.     public function listCategory() {
    18.       global $db;
    19.       $res = $db->query("SELECT * FROM shop_category");
    20.       while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
    21.           $this->id = $row['category_id'];
    22.           $this->title = $row['category_name'];
    23.           $this->description = $row['category_description'];
    24.           $this->name = $row['category_name'];
    25.           $this->image = $row['category_image'];
    26.         return ;
    27.           }
    28.     }
    29.    
    30. }
    31.  
    32. $category = new Category;
    33. $category->listCategory();
    34. ?>
    35.  
    36. <div class='shop'>
    37.  
    38.     <div class="thumbnail">
    39.         <img src="<?php $category->image; ?>">
    40.         <h3><a href="<?php $category->id; ?>"> <?php $category->name;?> </a></h3>
    41.     </div>
    42. </div>
    p.s. для администрации: на сайте не работает dual login, если авторизоваться на сайте - в форуме ты не авторизован, и с паролями то же самое: если на сайте поменять - нафоруме остается старый
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    http://phpfaq.ru/debug

    этому недоразумению уже не один год. всё печально.

    ты сформулируй внятно чего хочешь. пока рано даже явные косяки указывать, а их здесь много. пока сама цель непонятна. ООП это оформление логики в код, а не просто использование специальных слов типа "class".
     
  3. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    вывод ошибок включен - на странице чисто.

    на данный момент я продполагаю что делаю так:
    вызывая функцию $category->listCategory(); в функции listCategory, класса Shop, при помощи $this->id = $row['category_id']; - передаю значения в public $id; того же класса и вывожу <?php $category->id; ?>

    Добавлено спустя 48 секунд:
    пока писал, сам понял - не внимателен, не поставил оператор вывода echo ))
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    такая ошибка — это обычно дело. будет еще не раз.

    тебе стоит вникуть в процесс отладки!
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Может это конечно не полный код но зачем создавать класс Shop указывать переменные класса наследовать этот класс в Category?
    В чем смысл?
     
  6. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    artoodetoo, будем вникать))(с)

    предполагаю еще будет класс product.

    на курсах дали некий самописный мини-фреймворк, а документации не дали, препод в на призывы в скайпе молчит, пока что все как то так пытаюсь сделать, что бы работало при обращении на конкретную страницу хотя бы.
     
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Не знаю что ты там делаешь может тебе взглянуть на абстрактный класс?
    php.net/manual/en/language.oop5.abstract.php#83582

    А что за курсы?
     
  8. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    smitt, спасибо, ознакомлюсь.
    курсы php для начинающих.