|
Cake-PHP.ru Форум программистов CakePHP (на сайт)
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mayar
цитировать
Зарегистрирован: 03 Апр 2009 15:52:14 Сообщения: 24
|
Добавлено: 20 Авг 2009 15:51:26 Заголовок сообщения: Как find() формирует массив? |
|
|
Уважаемые специалисты, подксажите мне неразумному. Как происходит комбинирование цельного массива из нескольких SQL-запрософ, порождаемых сложным find() ?
Например, имеем вот такой find():
Код: |
$this->Site->find(
'all',
array (
'fields' => array('Site.id'),
'conditions' => array('Site.site' => '3333'),
'contain' => array (
'Job' => array(
'fields' => array ('Job.site_id'),
'conditions' => array ('Job.site_id' => 3),
'JobComment' => array (
'fields' => array ('JobComment.comment'),
'conditions' => array ('JobComment.trouble' => 1)
)
)
)
)
)
|
Он делает вот такие запросы:
Код: |
1 SELECT `Site`.`id` FROM `sites` AS `Site` WHERE `Site`.`site` = '3333'
2 SELECT `Job`.`site_id`, `Job`.`id` FROM `jobs` AS `Job` WHERE `Job`.`site_id` = (3)
3 SELECT `JobComment`.`comment`, `JobComment`.`id`, `JobComment`.`job_id` FROM `job_comments` AS `JobComment` WHERE `JobComment`.`trouble` = 1 AND `JobComment`.`job_id` IN (3, 5, 10, 11, 15)
|
В результате получаем 3 таблички:
Код: |
Sites:
-------
id
3
Jobs:
------
site_id id
3 3
3 5
3 10
3 11
3 15
job_comments:
------------------
comment id job_id
aaaaaaa 1 10
bbbbbbb 3 10
cccccccc 4 3
|
Каким образом после этого мы получаем вот такой массив:
Код: |
Array
(
[0] => Array
(
[Site] => Array
(
[id] => 3
)
[Job] => Array
(
[0] => Array
(
[site_id] => 3
[id] => 3
[JobComment] => Array
(
[0] => Array
(
[comment] => aaaaaaa
[id] => 4
[job_id] => 3
)
)
)
[1] => Array
(
[site_id] => 3
[id] => 5
[JobComment] => Array
(
)
)
[2] => Array
(
[site_id] => 3
[id] => 10
[JobComment] => Array
(
[0] => Array
(
[comment] => bbbbbb
[id] => 1
[job_id] => 10
)
[1] => Array
(
[comment] => ccccccc
[id] => 3
[job_id] => 10
)
)
)
[3] => Array
(
[site_id] => 3
[id] => 11
[JobComment] => Array
(
)
)
[4] => Array
(
[site_id] => 3
[id] => 15
[JobComment] => Array
(
)
)
)
)
)
|
Как? |
|
Вернуться к началу |
|
|
michas
цитировать
Зарегистрирован: 28 Янв 2008 11:28:31 Сообщения: 123
|
Добавлено: 20 Авг 2009 19:22:31 Заголовок сообщения: |
|
|
Из-за связей и recursive _________________ Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
mayar
цитировать
Зарегистрирован: 03 Апр 2009 15:52:14 Сообщения: 24
|
Добавлено: 21 Авг 2009 10:58:17 Заголовок сообщения: |
|
|
Да это ясно... мне интересно, как из 3х таблиц методами PHP получить такой вот массив, как я в конце привел.
Есть 3 массива: Sites, Jobs, Job_comments
Как их комбинировать в один большой массив?
Set::combine, Set::insert ? |
|
Вернуться к началу |
|
|
|
|
Вы можете начинать темы Вы можете отвечать на сообщения Вы можете редактировать свои сообщения Вы можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group Русская поддержка phpBB
|