{ return 'SELECT ' . $this->getFieldsString() . ' FROM ' . $this->table . $this->getWhereBlock() . $this->getOrderByBlock() . $this->getLimitBlock(); } } //Класс объектов сортировки ORDER BY class OrderByItem { private $filedName = ''; private $direction = ''; //Инициализация объектов класса public function __construct($fName, $sortDirection) { $this->direction = $sortDirection; $this->filedName = $fName; } //Функция преобразования объекта в строковое представление для работы функций join и т.д public function __toString() { if ($this->filedName == '' || $this->direction == '') { return ''; } return $this->filedName . ' ' . $this->direction; } } $sl = new SelectQuery(); $idDescSorting = new OrderByItem('id', 'desc'); $nameAscSorting = new OrderByItem('name', 'asc'); $sl->SetQueryFields(array('id', 'name'))->SetTable('Users')->SetLimit(0, 10)->SetOrderBy(array($idDescSorting, $nameAscSorting)); //$sl->SetWhere("WHERE id >= 10 and name = 'Руслан'"); var_dump($sl->GetQueryString());