Вывести данные из определенной таблицы в зависимости от ID пользователя

Как вывести данные на страницу из разных таблиц для каждого пользователя. Например если в сессии пользователь с ID=5 тогда выводить данные из таблицы user5. И так для разных пользователей. Надо что бы все выводилось при загрузке страницы.


Ответы (1 шт):

Автор решения: phpBear

Если я конечно все правильно понял, то как-то вот так...

$id = $_SESSION['user_id'];
if ( is_numeric( $id) && intval( $id ) > 0 ) {
    //Формируем sql-запрос к таблице групп которые курирует наш пользователь
    //Конечно же нужно делать через PDO и bindParams, но мы упростим
    $query = 'SELECT groupname, tablename FROM groups WHERE curator_id='.$id;

    //Далее мы выполняем sql-запрос после которого все записи нам вернуться в переменную $groupsList как массив
    foreach( $groupsList as $group ) {
        //Идем по списку таблиц связанных с указанным пользователем и выбираем из них то, что нам нужно
        $tableName = $group['tablename'];
        //Исходим из того, что набор полей в этих таблицах одинаковый - поэтому и запрос для всех одинаковый, иначе в чем смысл всего этого огорода с разными таблицами?

        $query = 'SELECT id, field1, field2, field3 FROM '.$tableName;
        //Опять выполняем sql-запрос, получаем то что нужно и обрабатываем это все
    }
    
    $tableName = '';
}
→ Ссылка