Hallo. Ik heb een probleem met het maken van een goede SELECT opdracht met gebruik van joins.
De site die ik beheer is gecombineerd met het phpBB forum en de gebruikersgroepen van phpBB zijn tevens de gebruikersgroepen van de site zelf. Om de gebruikersrechten uit de phpBB database te halen moet je via de userid van de USER table de verschillende groepen uit de USER_GROUP table halen. Vervolens wordt er aan de hand van deze GROUPS, de group_id, de overige gegevens(rechten) uit de GROUP table gehaald. Nu morgen er uit de GROUP database alleen maar usergroupen gehaald worden waarbij group_single_user niet 1 is, dit zijn de usergroupen met een speciale status(rechten). Elke gebruiker in phpBB heeft namelijk een eigen gebruikersgroup. Nu is het zo dat als iemand geen speciale rechten heeft de gebruikersinformatie gewoon uit de database gehaald moet worden, en dat de rechten pas uit de andere tabellen gejoind moeten worden zodra iemand deze heeft(anders dus alleen de gebruikersinformatie). Nu dacht ik dat met de volgende SELECT te doen, maar spijtig genoeg werkt het niet en krijg ik geen resultaten.
De code is als volgt:
Ik hoop dat ik duidelijk ben, anders wil ik nog best het een en ander toelichten.
Alvast bedankt.
De site die ik beheer is gecombineerd met het phpBB forum en de gebruikersgroepen van phpBB zijn tevens de gebruikersgroepen van de site zelf. Om de gebruikersrechten uit de phpBB database te halen moet je via de userid van de USER table de verschillende groepen uit de USER_GROUP table halen. Vervolens wordt er aan de hand van deze GROUPS, de group_id, de overige gegevens(rechten) uit de GROUP table gehaald. Nu morgen er uit de GROUP database alleen maar usergroupen gehaald worden waarbij group_single_user niet 1 is, dit zijn de usergroupen met een speciale status(rechten). Elke gebruiker in phpBB heeft namelijk een eigen gebruikersgroup. Nu is het zo dat als iemand geen speciale rechten heeft de gebruikersinformatie gewoon uit de database gehaald moet worden, en dat de rechten pas uit de andere tabellen gejoind moeten worden zodra iemand deze heeft(anders dus alleen de gebruikersinformatie). Nu dacht ik dat met de volgende SELECT te doen, maar spijtig genoeg werkt het niet en krijg ik geen resultaten.
De code is als volgt:
PHP:
4
5
6
7
8
9
| $result = $db->query("SELECT a.username, a.user_password, a.user_style, ug.group_id, g.* FROM " . USERS_TABLE . " AS a LEFT JOIN " . USER_GROUP_TABLE . " AS ug ON a.user_id = ug.user_id LEFT JOIN " . GROUPS_TABLE . " AS g ON g.group_id = ug.group_id WHERE g.group_single_user !='1' AND a.user_id = '$group_id[userid]'"); |
Ik hoop dat ik duidelijk ben, anders wil ik nog best het een en ander toelichten.