Ответ
virusav 29.05.2015 09:58
$tЗаявки[^table::sql{SELECT * FROM `заявки`}]
$tЗаказы[^table::sql{SELECT * FROM `заказы`}]
$tПодключения[^table::sql{SELECT * FROM `подключение_заявок`}]
Если бы выборки из базы были без условий, то можно было сразу выбирать хеш таблиц запросом.
1. Выбрать заказы.
2. Прокрутить заказы в цикле для получения списка номеров родительских заявок.
3. Выбрать заявки по списку из п. 2.
4. Прокрутить заявки в цикле для получения списка номеров дочерних заявок.
5. Выбрать подключения по этому из п. 4.
Смущают п. 2 и п. 4.
Самое главное, что надо выводить:
1. Количество всех подключенных дочерних заявок.
2. Количество дочерних заявок, подключенных по данному заказу.
3. ...
Вот тут как раз и начинается свистопляска:
$tTemp[^hЗаявки.[номер_родительской_заявки].select(^hПодключения.contains[$hЗаявки.[номер_родительской_заявки].номер_дочерней_заявки])]
^if(^hПодключения.[$hЗаявки.[номер_родительской_заявки].номер_дочерней_заявки].locate[номер_заказа;$tЗаказы.код]){}
...
Можно, конечно, в цикле прокручивать все дочерние заявки, все подключения по ним и формировать хеш с нужными данными, но потом снова придется все это крутить для вывода в зависимости от полученных данных.
В связи с этим и возник вопрос насчет хеша хешей ... таблиц.
Получил раз из таблицы дочерних заявок и подключений, а потом:
^hData.[номер_родительской_заявки]._count[]
^hData.[номер_родительской_заявки].[номер_дочерней_заявки]._count[]
$hData.[номер_родительской_заявки].[номер_дочерней_заявки].[номер_заказа].[поле с данными о подключении]
- Хеш хешей из БД или объекта table, virusav 25.05.2015 16:05
- Ответ, Misha v.3 [M] 26.05.2015 16:18
- Ответ, virusav 26.05.2015 16:45
- Ответ, Maxx [M] 25.05.2015 17:00
- Ответ, virusav 25.05.2015 17:08 / 25.05.2015 17:09
- Ответ, Maxx [M] 26.05.2015 01:37
- Ответ, virusav 26.05.2015 09:41
- Ответ, Maxx [M] 26.05.2015 09:54 / 26.05.2015 09:58
- Ответ, virusav 26.05.2015 10:51
- Ответ, Misha v.3 [M] 26.05.2015 16:21 / 26.05.2015 16:22
- Ответ, virusav 26.05.2015 16:31
- Ответ, Misha v.3 [M] 26.05.2015 23:26 / 26.05.2015 23:36
- Ответ, virusav 26.05.2015 23:51
- Ответ, Misha v.3 [M] 27.05.2015 00:39
- Ответ, virusav 27.05.2015 09:18
- Ответ, Misha v.3 [M] 27.05.2015 11:57 / 27.05.2015 11:58
- Ответ, virusav 27.05.2015 14:04 / 27.05.2015 14:10
- ваша схема плохая :), Misha v.3 [M] 28.05.2015 01:24 / 28.05.2015 01:26
- Ответ, virusav 28.05.2015 12:40
- Ответ, Misha v.3 [M] 29.05.2015 04:18
- Ответ, virusav 29.05.2015 09:58
- Ответ, Maxx [M] 27.05.2015 14:49
- Ответ, virusav 27.05.2015 15:11
- ИМХО, max_rip 27.05.2015 15:24
- Ответ, virusav 27.05.2015 16:04
- Ответ, max_rip 27.05.2015 16:40
- Ответ, virusav 27.05.2015 16:42
- Откройте для себя LEFT JOIN и RIGHT JOIN, и INNER JOIN, max_rip 26.05.2015 11:18
- Ответ, dwr 25.05.2015 17:11
- Ответ, virusav 25.05.2015 17:32
- Ответ, moko [M] 25.05.2015 19:19
- Ответ, virusav 25.05.2015 22:07
- Ответ, MoKo 26.05.2015 01:30
- Ответ, virusav 26.05.2015 09:47