RE: Guide to filters?

"Jan Bolmeson" <[email protected]>
Newsgroups gmane.comp.php.pear.liveuser
Message-ID <[email protected]>
Thank you for the exhaustive answer... :)

But hence if I understood it right - there is no way to use
perm->getRights() with filter so it corresponds to the following sql:

SELECT 
lu.area_id, 
area_define_name, 
right_id, 
right_define_name 
FROM liveuser_rights JOIN liveuser_areas AS lu ON lu.area_id =
liveuser_rights.area_id


Thanks
//jan

____________________________________________
Jan Bolmeson, Civilingenjör
epost: ([email protected])
mobil: 0735 12 86 18 | Digitalt visitkort (vCard)

Fernebrant & Ivtaco Mediaproduktion
Kristianstadgatan 41B | 214 35 MALMÖ
tfn: 040 30 11 88 | http://www.ivtaco.se

> -----Original Message-----
> From: [email protected] [mailto:liveuser-
> [email protected]] On Behalf Of Lukas Smith
> Sent: den 29 juni 2005 13:58
> To: LiveUser-DevList
> Subject: Re: [LiveUser] Guide to filters?
> 
> Jan Bolmeson wrote:
> > I can’t really seem to figure out filters, especially the “with” part –
> > could somebody explain how it relates to SQL JOIN? E.g. I am trying to
> use
> > the GetRights() to return all the rights with their area_id changed to
> the
> > area_define_name… I am about to write my own sqls since it would go 10
> times
> > as fast so I am pretty sure I am missing something here… =o|
> 
> The with part is essentially a way to have LiveUser_Admin to another
> get*() call per row in the result set.
> 
> But here goes a simple filter wtf? guide .. or better a generic guide to
> the parameters supported in the admin api ..
> 
> 1) 'fields' (default: all fields from the first table in the
> "selectable_tables" property): this is an array containing the fields
> you want to fetch. the storage engine will attempt to automatically
> determine the most logical set of tables to join if necessary. this set
> of tables depends on the get*() method you called and can be affecred by
> the "selectable_tables" property. the order is relevant and therefore
> its not irrelevant which get*() method you call, even if the tables you
> are interested are listed in both "selectable_tables" arrays.
> 
> $params = array('fields' => array('foo', 'bar'));
> 
> 2) 'with' (default: no with): this setting uses "withFieldMethodMap"
> property to determine what get*() method should be used for the given
> field. The specified field is implicitly added to the field list, if its
> not already listed there explicitly.
> 
> $params = array('with' => array('group_id'));
> $LUadmin->perm->getUsers($param);
> 
> this will fetch all the users from the perm database and it will do a
> join with the groupusers table in order to fetch the group_id field. it
> will then do a getGroups() call using the group_id of each row as the
> only filter. the result will be stored into a key "groups".
> 
> 3) 'filters' (default: no filters): this is essentially a key value pair
> with the field on which the filter is to be executed is the key and the
> value is the criterion to match against. the simplest way is to have a
> simple scalar value which uses simple "=" comparisions. If you pass a
> php null value it will do an "IS NULL" check. if the value is a simple
> array that does not have a key "value" in any position an "IN ([comma
> separated list of values])" check will be made. if the value does
> contain a key "value", than it will also expect an "op" key which
> specifies the comparision operatator (like "=", "<", "NOT IN" etc.). If
> the value of the "value" key is an array it will create a comma
> separated list, if not it will just quote the value. multiple filters
> will be AND'ed.
> 
> fields specified inside the filters will affect what tables are joined.
> 
> 4) 'orders' (default: no order by): a simple array containing the names
> of fields by which the result should be ordered. fields specified inside
> the orders will affect what tables are joined.
> 
> 5) 'select'  (default: 'all'): possible values are
> 'all' if you want a two dimensional array containing all rows from the
> result set.
> 'col': if you only want the first column of the result set as a single
> dimensional array
> 'row': if you only want the first row of the result set as a single
> dimensional array
> 'one': if you only want the first column of the first row of the result
> set as a scalar value
> 
> 6) 'rekey' (default: false): determines if the first dimension of the
> result where 'select' was set to 'all' should be the first column of
> each row.
> 
> 7) 'group' (default: false): determines if all of the values with the
> same value in the first column when using the rekey option should be
> grouped inside another array.
> 
> 8) 'limit' (default: none): determines if the number of rows in the
> result set should be limited by the given amount
> 
> 9) 'offset' (default: none): determines if the given number of rows
> should be skipped at the beginning of the result set
> 
> hope this helps ..
> look at the example 1 in the liveuser admin package to see some sample
> calls.
> 
> regards,
> Lukas Smith
> [email protected]
> _______________________________
>    BackendMedia
>    www.backendmedia.com
>    [email protected]
> 
>    Linn Zwoch Smith GbR
>    Pariser Str. 44
>    D-10707 Berlin
> 
>    Tel +49 30 83 22 50 00
>    Fax +49 30 83 22 50 07
> 
> _______________________________________________
> LiveUser mailing list
> [email protected]
> http://mailman.21st-hq.de/mailman/listinfo/liveuser
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.