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

Запросец

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

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

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

Что-то я не смог стандартными средствами решить, поэтому хочу спросить - как можно сделать подобный запрос средствами кейка

Есть

Album (hasMany) -> Photos (hasMany) -> Comments

Нужно узнать сколько комментариев к фотографиям, которые лежат в конкретном альбоме.

Вложенный запрос SQL для MySQL один я написал, работает как надо.
Но может есть способы "общего" решения?

Кратко вот запрос:

SELECT COUNT(*) FROM pcomments WHERE photo_id IN (SELECT id FROM photos WHERE album_id = ". $id.")
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



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

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

Аналогично делал.. это легче.. чем искать что-то уже готовое для кэйка. Хотя я знаю что если ты ассоциируешь модели таким образом:

Album->Photos
Photos->Comments

согласно соглашениям Кэйка, и выставишь глубину запроса 2 или 3 то я думаю он тебе выдаст объект Albums со всеми фотками и комментариями в дереве..

Чую правда не знаю чем что должно получиться..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

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

Выдать-то выдаст. Но считать потом комментарии - не очень удобно.
Точнее - лишние движения. Тут - один запрос. А там (если я правильно понял) - выйдет запрос, а потом подсчёты.
Значит я правильно сделал Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



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

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

чё-то я сам не понял.. если сделать "глубинный" запрос через Кэйк в базу то выйдет дерево с твоими данными.. ну и юзай его Foreach скока влезет..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

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

НУ я об этом и говорю
Через кейк - правильнее, но запрос +foreach
Прямой запрос - сразу ответ.
Вдвое меньше действий, скорость, соответственно выше...
Или я не прав?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



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

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

прав.. так в чём же трабла?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

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

думал, что есть кошерный метод решения средствами кейка.
Чтобы в случае смены MySQL на что-нить другое, не испытывать затруднений...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



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

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

$album->Photo->findCount();
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



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

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

KPOTOB писал(а):
$album->Photo->findCount();


А это зачем? Что считать собрались?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



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

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

DeeperMD
arghhh

$this->Album->Photo->Comment->findCount('Photo.album_id = '.$id);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

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

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

Смайлики
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