Получить пользователей из таблицы, где группа = группа другой строки таблицы, но у меня есть идентификатор другой строки таблицы

0

ТАЙНА ПОЛЬЗОВАТЕЛЯ:

Изображение 174551

Таблица GROUP_PERMISSIONS

Изображение 174551

проблема:

Как я могу получить все пользователи (из таблицы пользователей) с группой т.е. равна группе таблицы groups_permissions, но у меня есть GID группы из таблицы groups_permissions?

КОД: (я пробовал (у него есть и другие функции))

$stmt = $db_con->query("SELECT gp.*, s.*, uu.*, ug.* FROM (SELECT * FROM groups_permissions WHERE gid={$_POST['gp_row_id']}) gp, (SELECT * FROM settings WHERE id='1') s, (SELECT username FROM users ORDER BY id) uu, (SELECT username FROM users WHERE 'group'=gp.group_name WHERE gp.gid={$_POST['gp_row_id']}) ug");            
$stmt->execute();
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    /* FROM GROUP_PERMISSIONS TABLE */
        $response['id'] = $row['gid'];
        $response['group'] = $row['group_name'];
        $response['restricted_pages'] = $row['restricted_pages'];
        $response['restricted_permissions'] = $row['restricted_permissions'];
    /* FROM SETTINGS TABLE */
        $response['site_pages'] = $row['site_pages'];
        $response['site_permissions'] = $row['site_permissions'];
    /* FROM USERS TABLE */
        $active_ids[]= $row['username'];
        $userlist = join(",", $active_ids);
        $string = trim($userlist,'"');
        $response['users'] = $string;
    }
    echo json_encode($response);

Для примера, если при отправке формы я получаю строку id 5 (см. Изображение выше) группы dsf из groups_permissions, то я хочу, чтобы все пользователи с группой dsf из таблицы users, но поскольку у меня есть идентификатор для группы из group_permissions table, тогда, я не знаю, что использовать, но как Select username from users WHERE group='dsf' from permissions_table but rather select the group by the help of gid

  • 0
    Можете ли вы уточнить с примером вывода
  • 0
    @Shyamala, например, если при отправке формы я получаю идентификатор строки 5 (см. Изображение выше) группы dsf из groups_permissions, то я хочу получить всех пользователей с группой dsf из таблицы users, но так как у меня есть идентификатор для группы из groups_permissions затем, я не знаю, что использовать, но как Select username from users WHERE group='dsf' from permissions_table but rather select the group by the help of gid
Теги:
pdo

1 ответ

0
Лучший ответ

Если я правильно понял, выберите

"SELECT *
FROM users
INNER JOIN permissions_table ON permissions_table.group_name = users.group
WHERE permissions_table.gid = {$_POST['gp_row_id']}"

И я бы советовал хранить идентификаторы групп в таблице пользователей, а не имена групп, так как это правильная практика для реляционных баз данных.

  • 0
    верно, но когда создается группа, автоматически увеличивается идентификатор автоинкремента, поэтому я не могу поместить это в столбец пользователей, потому что я не знаю, что такое идентификатор увеличения
  • 0
    Вот где метод last_insert_id пригодится. php.net/manual/en/pdo.lastinsertid.php После создания группы вы используете этот метод, чтобы получить этот новый идентификатор и использовать его в следующих операциях.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню