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]   

> Без описания
smumrik
Отправлено: 24 Октября, 2011 - 10:39:39
Post Id



Новичок


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


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




привет! не могу разобраться, как правильно создать приложение на ООП.
кратко суть: есть студенты, группы, кафедры, фак-ты.
думаю тут понятна иерархия?
есть класс Students - при создании объекта становится доступна информация о студенте
дальше я хочу получить информацию о его группу (имя группы), о кафедре, к которой эта группа принадлежит, и фак-те конечно. (в mysql имеются соответственные таблицы - студенты, группы ит.д.)
прошу натолкнуть на мысли - как это правильно реализовать?
создавать соответствующие классы для групп, кафедр?
 
 Top
caballero
Отправлено: 24 Октября, 2011 - 12:46:12
Post Id


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


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


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




конечно создать
и главное надо понимать что потом с ними делать


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
smumrik
Отправлено: 24 Октября, 2011 - 13:31:26
Post Id



Новичок


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


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




caballero что делать...
к примеру, я создал объект - студент Вася, и теперь мне нужно узнать название его группы.
ID Васиной группы я знаю, теперь мне нужно с этим ID обратиться к классу Group и "попросить" назвать имя соответствующей группы.
правильно рассуждаю?
PHP:
скопировать код в буфер обмена
  1. class Groups {
  2. // какие-то переменные?
  3. var $name
  4.      function __construct($id) {
  5.           // тут запрос к БД: по ID получить NAME из таблицы GROUPS
  6.           $this->name = $result[0]; // в $result[0] ответ БД
  7.       }
  8.      function getNameGroup() {
  9. return $this->name;
  10.       }
  11. }
  12.  
  13. $groupVasja = new Groups($VasjaID);
  14. $groupName = $groupVasja->getNameGroup();
  15. print $groupName;


так верно?
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Октября, 2011 - 14:43:32
Post Id



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


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


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




smumrik пишет:
так верно?
Да, верно. Но!!!
Продолжайте, продолжайте - дальше сами поймете что будет нужно.
Осознание удобства, скорости и правильного проектирования приложения придет не сразу.
Нужно наступать на грабли - лоб покроется мозолями, а удары выправят извилины в нужную сторону.
Без практики - никуда. Подмигивание
 
 Top
smumrik
Отправлено: 24 Октября, 2011 - 14:56:17
Post Id



Новичок


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


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




DeepVarvar а можно спросить совет?
вот я хочу как-то считать кол-во сообщений, относящихся к фак-там, кафедрам, группам.
для этого лучше создать поля "Count" в соответствующих таблицах рядом с NAME и ID?
или в отдельные таблицы вынести лучше? Не понял
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Октября, 2011 - 15:12:20
Post Id



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


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


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




smumrik пишет:
как-то считать кол-во сообщений
Незачем делать отдельные поля - их считают типа так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) cnt FROM messages WHERE id_kafedry = 646
 
 Top
smumrik
Отправлено: 24 Октября, 2011 - 15:17:13
Post Id



Новичок


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


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




DeepVarvar я думал так и сделать, но, мне нужен вывод этого числа чуть ли не на каждой странице сайта. да и число не одно, т.е. нес-ко запросов нужно.
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Октября, 2011 - 15:22:05
Post Id



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


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


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




smumrik пишет:
т.е. нес-ко запросов нужно
Если обойдетесь 5-10 запросами на страницу для всех данных - считайте это победой.
 
 Top
Stierus Супермодератор
Отправлено: 25 Октября, 2011 - 09:45:14
Post Id



Рекордсмен по количеству сообщений за 7 дней


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


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




Цитата:
но, мне нужен вывод этого числа чуть ли не на каждой странице сайта
Для этого результаты запросов кэшируют. Тем более, что информация из разряда "у нас уже 25 студентов" не критическая, абсолютно ничего страшного, если эта информация будет запаздывать минут на 5 от бд Улыбка
 
My status
 Top
smumrik
Отправлено: 25 Октября, 2011 - 16:48:26
Post Id



Новичок


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


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




а помогите разобраться, как лучше сделать проверку прав доступа?
у меня в системе есть, как я уже говорил, студенты, а также преподаватели, модеры, и админы. каждому типу соответствует цифра (1-4) в поле TYPE таблицы USERS.
воспрос - как лучше проверять эти права в скриптах?

просто каждый раз проверять поле TYPE необходимого пользователя? типа if($row['TYPE']==3) { //можно делать действие, доступное модеру}
elseif($row['TYPE']==4) {// только для модератора}

или лучше создать в классе User методы типа isModer() и isAdmin(), проверяющие права авторизованного и выдающии либо true либо false?
но тогда прежде чем вызывать эти методы нужно проверять налицие авторизации (наличие объекта классаUser)

как удачней сделать? Не понял
на мой взгляд второй способ более удобен, т.к. в случае внесения изменений в иерархию типов пользователей сайта нужно править меньше кода
 
 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