I finally had the time to check it out, your solution should be really
close...
to clarify:
- one user can be the member of <many> groups
- one group can have <many> members
I thought that was n on m relation, but oh well :)
Anyways:
there's no relation groups, but instead a pg_group and pg_user (real
database users, no new table users or groups, I wanted to eliminate that
one)
so in postgresql I do:
\d pg_group
And the outcome is something like this (it's on another computer, so I
could not copy paste)
Attribute Type (modifier, but there are none)
groname name
grousysid integer
grolist integer[] (<- those are square brackets in case it's hard to
see)
Indeces: pg_group_name_index,
pg_group_sysid_index
When I tried to do a:
SELECT * FROM pg_group WHERE "grolist"='1005';
I get this error:
ERROR: array_in: Need to specify dimension
I think there's my problem, I don't know how to do that...
(I do my queries always first in pgsql first, then I parse them to php, to
make sure the query will work)
When I do a SELECT * FROM pg_group;
I get this list:
groname grosysid grolist
admins 1 {1004}
coders 5 {1006, 1005}
areas 4 {1006,1005}
Now I want the user that logs in with his/her name, and has uid 1005, to
get the options that belong to the groups he's member of.
So I need to filter something like this:
SELECT * FROM pg_group WHERE < his uid is in the grolist>;
but how can I manage that?
Hope I have been clearer this time...
Steve Brett
<steve.brett@e- To: [EMAIL PROTECTED]
mis.co.uk> cc:
Fax to:
05-09-2001 Subject: Re: postgresql groups and users
15:24
"Michiel Lange" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> for my application in php I connect with a postgresql database.
> In this database I have made users and groups, where 1 user can be the
> member of many groups (n on m relation)
^^^^^^^^^^^
1 to many. 1 > n.
> That works, but how do I let php find out if a user is a member of a
> certain group?
do a select . i'm assuming that you post the user id into the groups
tables.
select * from goups where group_id=7 and user_id=1;
if the query returns any results then you have a match.
so :
$numrows=pg_numrows($query);
if ($numrows>0){print"You have a match<br>";}
Steve
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]