Как взорвать несколько идентификаторов в одинаковых полях PHP - PullRequest
0 голосов
/ 27 августа 2018

Таблица пользователей выглядит следующим образом:

UserTable

uid Name    address
1  Ravi    Rajasthan
2  Kamal   Bihar
3  Sunil   Rajasthan
4  Laxman  Punjab

Таблица групп выглядит следующим образом:

GroupTable

gid   gname    users
1     group1   1,3,4
2     group2   2,4

Я использую этот код.

    $sql = "SELECT groups.uid,groups.group_name FROM users
    INNER JOIN users ON users.uid=groups.uid";
    $query = $dbh -> prepare($sql);
    $query->execute();
    $results=$query->fetchAll(PDO::FETCH_OBJ);
    //$resul = explode(",", $results)
    $cnt=1;
    foreach($results as $result){
        echo '<br>';
    $getids = (explode(',', $result->uid));
    foreach ($getids as $getid) {
    //echo $getid . '<br>';
    $id = $getid;
    $sql = "SELECT user_name FROM users WHERE uid=:id";
    $query = $dbh -> prepare($sql);
    $query->bindParam(':id',$id, PDO::PARAM_STR);
    $query->execute();
    $results=$query->fetchAll(PDO::FETCH_OBJ);
    foreach($results as $result)  {
    echo $result->user_name . ', ' ;

        }
    }

}

?>

Может ли кто-нибудь объяснить мне, что мне трудно понять. Спасибо

1 Ответ

0 голосов
/ 27 августа 2018

Чтобы получить список всех пользователей в группе, вы можете использовать один SQL запрос:

SELECT
    groups.uid, groups.group_name,
    users.uid, users.user_name
FROM groups
INNER JOIN users ON users.uid IN(groups.users)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...