Oznámení
Omlouváme se, provoz fóra byl ukončen
Rada ohledně struktury SELECTu
Upozornění: Tohle vlákno je hodně staré.
před 6 lety
- rossini
- Člen | 26
Ahoj, má tu takový „překladatelský oříšek“ :) Tedy pro mě…
Mám SELECT:
return dibi::query('
SELECT *
FROM [poi_ACL_role_perms]
LEFT JOIN [poi_ACL_roles] ON [poi_ACL_role_perms].[roleID] = [poi_ACL_roles].[ID]
LEFT JOIN [poi_ACL_permissions] ON [poi_ACL_role_perms].[permID] = [poi_ACL_permissions].[ID]
ORDER BY [roleID] ASC
')->fetchAll();
což mi vrací pole:
Array
(
[0] => DibiRow Object
(
[ID] => 2
[roleID] => 1
[permID] => 2
[value] => 1
[addDate] => DibiDateTime Object
(
[date] => 2009-03-02 17:13:21
[timezone_type] => 3
[timezone] => Europe/Berlin
)
[roleName] => Administrators
[permKey] => access_admin
[permName] => Access Admin System
)
[1] => DibiRow Object
(
[ID] => 7
[roleID] => 1
[permID] => 7
[value] => 1
[addDate] => DibiDateTime Object
(
[date] => 2009-03-02 17:13:21
[timezone_type] => 3
[timezone] => Europe/Berlin
)
[roleName] => Administrators
[permKey] => access_premium_content
[permName] => Access Premium Content
)
...
)
já nad tím polem potřebuji v šabloně iterovat tak, že [poi_ACL_permissions] … (tedy druhý JOIN) bude vlastně vnořená tabulka. Chtěl jsem tedy dostávat již ze SELECTu něco jako toto:
Array
(
[0] => DibiRow Object
(
[roleName] => Administrators
[ID] => 2
[roleID] => 1
[value] => 1
[addDate] => DibiDateTime Object
(
[date] => 2009-03-02 17:13:21
[timezone_type] => 3
[timezone] => Europe/Berlin
)
[Permissions] => Array
[0] =>(
[permID] => 2
[permKey] => access_admin
[permName] => Access Admin System
)
[1] =>(
[permID] => 3
[permKey] => access_premium_content
[permName] => Access Premium Content
)
[2] =>(
[permID] => 4
[permKey] => access_inbox
[permName] => Access Inbox
)
)
...
)
Zkrátka to pole jakoby grupovat dle těch rolí [roleName]. Vím, jak to „ojebat“ v PHP ale říkal jsem si, jestli není elegantnější způsob přímo v DIBI, nebo jestli mi neukážete směr, jak iterovat nad tím původním výsledkem…
před 6 lety
- rossini
- Člen | 26
Takže si odpovím… Nechápu, jak jsem mohl žít bez dibi fetchassoc :) Už jsem to ukutal :D Díky