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
Форумы портала PHP.SU :: Версия для печати :: Как можно оптимизировать запрос в классе
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Как можно оптимизировать запрос в классе

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

1. koras - 07 Марта, 2012 - 15:07:44 - перейти к сообщению
Как можно сделать лучше

PHP:
скопировать код в буфер обмена
  1.  
  2.          
  3. class request_db  extends db {
  4.  
  5.         # My table
  6.         public $from;
  7.  
  8.         #order
  9.         public $order = false;
  10.         public $whereby = false;
  11.         # limit
  12.         public $start = 0;
  13.         public $finish = 1;
  14.         # request
  15.         public $while = false;
  16.        
  17.         public $select = false;
  18.  
  19.         public $group_by = false;
  20.  
  21.  
  22.  
  23.         public function select() {
  24.         if ($this -> from != false) {
  25.                 if ($this -> select != false) {
  26.                         $this -> request = "SELECT " . $this -> select . " FROM ";
  27.                 } else {
  28.                         $this -> request = "SELECT * FROM ";
  29.                 }
  30.  
  31.                 if ($this -> while != false) {
  32.                         $this -> request .= " WHERE " . $this -> while . " ";
  33.                 }
  34.  
  35.                 if ($this -> group_by != false) {
  36.                         $this -> request .= " GROUP BY  " . $this -> $group_by . " ";
  37.                 }
  38.  
  39.                 if ($this -> order != false) {
  40.                         $this -> request .= " ORDER BY  " . $this -> $order . " ";
  41.                         if ($this -> whereby != false) {
  42.                                 $this -> request .= $this -> whereby;
  43.                         }
  44.                 }
  45.                 $this -> request .= "LIMIT {$this -> start}, {$this -> finish};";
  46.                 return $this -> getAssocArr($this -> query($this -> request));
  47.         }
  48.           return 'no table';
  49.         }
  50. }
  51.  


Простой select или вообще по поводу селекта так не стоит заворачиваться ?

Решил пойти таким путём, так как есть объекты где меняется всего лишь название таблицы и поля, а дальше всё стандартно.
2. Bio man - 07 Марта, 2012 - 16:36:36 - перейти к сообщению
с точки зрения MVC, если можно так сказать, все запросы должны храниться в моделе. то есть нужно только передавать значения для запроса объекту базы данных. модель БД по сути и есть твой скрипт, только не вижу где параметры передаются. и зачем тебе наследование? ты наследуешь от db больше 1 класса или создаешь ибъект от db для исключительно других целей нежели чем работы с БД?

 

Powered by ExBB FM 1.0 RC1