Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

group by

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
ztalker

цитировать



Зарегистрирован: 06 Ноя 2007 14:00:26
Сообщения: 26
Откуда: Новосибирск

СообщениеДобавлено: 14 Фев 2008 13:18:11    Заголовок сообщения: group by Ответить с цитатой

Вопрос может очень и простой, но очень важный, для оптимизации многих процессов!
Как в методе findAll делать группировку, чтобы в запросе было "GROUP BY" ?
_________________
На работу в Новосибирске требуется PHP программист, со знанием CakePHP. Пишите в личку.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Trk

цитировать



Зарегистрирован: 24 Янв 2008 17:41:58
Сообщения: 5

СообщениеДобавлено: 14 Фев 2008 17:58:35    Заголовок сообщения: Ответить с цитатой

Как то так должно работать:
Код:

$conditions = array(
                      'Post.date' => '> ' . date('Y-m-d', strtotime("-2 weeks")),
                      '1=1 GROUP BY Post.title'
                    );
$posts = findAll($conditions);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ztalker

цитировать



Зарегистрирован: 06 Ноя 2007 14:00:26
Сообщения: 26
Откуда: Новосибирск

СообщениеДобавлено: 14 Фев 2008 19:17:27    Заголовок сообщения: Ответить с цитатой

этож путь в обход Smile
а предусмотренных в cakePHP способов нет?
_________________
На работу в Новосибирске требуется PHP программист, со знанием CakePHP. Пишите в личку.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 14 Фев 2008 19:57:10    Заголовок сообщения: Ответить с цитатой

жесть Confused

http://api.cakephp.org/1.2/class_model.html#63ade7d3c6d03c83ab53a224e23ad9dd
см. третий параметр
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Trk

цитировать



Зарегистрирован: 24 Янв 2008 17:41:58
Сообщения: 5

СообщениеДобавлено: 14 Фев 2008 20:46:08    Заголовок сообщения: Ответить с цитатой

KPOTOB, $order? не думаю что он тут поможет Smile

Я тоже когда искал, только это и нашел. Ну или $this->[model]->query() использовать. Или я плохо искал..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mikkola

цитировать



Зарегистрирован: 15 Фев 2008 06:50:07
Сообщения: 1

СообщениеДобавлено: 15 Фев 2008 06:56:05    Заголовок сообщения: Ответить с цитатой

вот еще способ (не самый лучший, конечно):

1. Полная выборка с помощью find('all')
2. используем Set::combine() http://api.cakephp.org/1.2/class_set.html#80506e373d04c93eb4dc1582d8e5c09c

$path формируется аналогично generateList()
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 15 Фев 2008 11:35:52    Заголовок сообщения: Ответить с цитатой

Trk
Да блин потерялся с недосыпа - тогда первый )))

кусок с гуглогруп
----
Here's a working example:
$this->Blog->bindModel(array('hasOne'=>array('Dummy'=>array('className'=>'Comment','foreignKey'=>'foreign_id'))));
$this->data = $this->Blog->FindAll('`Dummy`.`class`=\'blog\' GROUP BY
`Blog`.`id`',array('id','title','status','created','COUNT(`Dummy`.`id`)
AS comment_count'),$order, $limit, $page,0);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 15 Фев 2008 18:10:33    Заголовок сообщения: Ответить с цитатой

А почему не сделать так?

->findAll("ORDER BY id");

у меня вроде получалось...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru