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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите разобраться с ООП

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Айратиус
Отправлено: 03 Июля, 2015 - 08:43:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


Помог: 0 раз(а)




Всем доброго дня. Хочу таки научиться писать с помощью ООП, не понимаю логики работы. Статьи мало что дают. Не могли бы как-нибудь помочь написать на примере?
Вот например просто код, который для примера

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // подключен бд
  3. $result=mysql_query("SELECT * FROM table WHERE cat=15");
  4. while($myrow=mysql_fetch_array($result))
  5. {
  6. ?>
  7. <div>
  8. <div><?=$myrow['title']?></div>
  9. <div><?=$myrow['description']?></div>
  10. </div>
  11. <?PHP
  12. }
  13. ?>
  14.  


Как это можно записать с помощью ООП ? (функции, классы, конструкторы и т.д.)

Понимаю лучше на примерах. Просьба сильно не ругать. Если нечего сказать, лучше пройти мимо и промолчать
 
 Top
andrewkard
Отправлено: 03 Июля, 2015 - 10:24:40
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Пример не очень удачный. Метод класса - это функция. Из Вашего примера в функцию можно выделить только:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result=mysql_query("SELECT * FROM table WHERE cat=15");
  3.  

Посмотрите в сторону MVC. Контроллер получает запрос, есть необходимость получить данные из БД, подключает модель $this->model->getCat(15).В модели:
PHP:
скопировать код в буфер обмена
  1.  
  2. public function getCat($data){
  3. $result=mysql_query("SELECT * FROM table WHERE cat=$data");
  4. return $result;
  5. }
  6.  

В контроллере обрабатываете, загоняете результат в переменные или массив, подключаете view, в которой уже циклом выводите то что нужно.
Утрировано.
 
 Top
caballero
Отправлено: 03 Июля, 2015 - 13:03:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Как это можно записать с помощью ООП ?

записать в ООп можно логику которая ложится в ООП а не какой попало код.


Цитата:
Посмотрите в сторону MVC.

Он еще в ООП не вьехал, какой нафиг MVC. Зачем давать идиотские советы


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DelphinPRO
Отправлено: 03 Июля, 2015 - 13:18:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




caballero пишет:
Зачем давать идиотские советы

преждевременные
(Добавление)
Вообще-то любую хрень можно записать классами Улыбка
PHP:
скопировать код в буфер обмена
  1. class MyClass {
  2.  
  3.   private $_data;
  4.  
  5.   public function loadData($cat) {
  6.     $queryString = "SELECT * FROM table WHERE cat=" . abs((int)$cat);
  7.     $result = mysql_query($queryString);
  8.     $this->_data = array();
  9.     while($myrow = mysql_fetch_array($result)) {
  10.       $this->_data[] = $myrow;
  11.     }
  12.   }
  13.  
  14.   public function output() {
  15.     include 'template.phtml';
  16.   }
  17. }


PHP:
скопировать код в буфер обмена
  1. $obj = new MyClass();
  2. $obj->loadData(15);
  3.  
  4. $obj->output();



template.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <? foreach ($this->_data as $item) ?>
  2.   <div><?= $item['title'] ?></div>
  3.   <div><?= $item['description'] ?></div>
  4. <? } ?>


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Айратиус
Отправлено: 03 Июля, 2015 - 16:04:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


Помог: 0 раз(а)




Ну капец. И толку? Я так понимаю для моего примера лучше использовать так как я написал в самом начале, иначе очень много строк. Наверное неудачный пример привел.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB