Encoderast
@Encoderast
frontend пытается что-то делать в backend

Как сделать выборку из 2 таблиц -> вывод результатов?

Не могу не знаю как сделать выборку из таблиц с последующим выводом

Что есть:

Контроллер:
public function actionSettings()
    {
        // Проверка доступа
        self::checkAdmin();

        // Получаем идентификатор пользователя из сессии
        $userId = Company::checkLogged2();

        // Получаем информацию о пользователе из БД
        $user = Company::getUser2ById($userId);

        // Подключаем вид
        require_once(ROOT . '/views/admin/settings.php');
        return true;

Получаем идентификатор пользователя из сессии
/**
     * Возвращает идентификатор пользователя, если он авторизирован.<br/>
     * Иначе перенаправляет на страницу входа
     * @return string <p>Идентификатор пользователя</p>
     */
    public static function checkLogged2()
    {
        // Если сессия есть, вернем идентификатор пользователя
        if (isset($_SESSION['user'])) {
            return $_SESSION['user'];
        }

        header("Location: /user/login");
    }

Получаем информацию о пользователе из БД
/**
     * Возвращает пользователя с указанным id
     * @param integer $id <p>id пользователя</p>
     * @return array <p>Массив с информацией о пользователе</p>
     */
    public static function getUser2ById($id)
    {
        // Соединение с БД
        $db = Db::getConnection();

        // Текст запроса к БД
        $sql = 'SELECT * FROM user WHERE id = :id';

        // Получение и возврат результатов. Используется подготовленный запрос
        $result = $db->prepare($sql);
        $result->bindParam(':id', $id, PDO::PARAM_INT);

        // Указываем, что хотим получить данные в виде массива
        $result->setFetchMode(PDO::FETCH_ASSOC);
        $result->execute();

        return $result->fetch();
    }



Результат: мы получили данные о пользователе
Что нужно: получить информацию о компании, к которой привязан данный пользователь

пользователь: таблица user - id
компания таблица user (company_id) -> таблица company (id)

Картинки (жмяк)
18b184f60fe246cba7aceb36e47b102a.PNG365bd419524141a3a1059ed17f393fe7.PNG


Что нужно сделать? Что дописать (видоизменить) чтоб после получения пользователя из БД мы также получили и id компании, к которой от привязан?
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
@asmodeusta
PHP Developer (Laravel, Wordpress)
Пишите запрос на получение данных о компании где id = $user['company_id']:
...
$sql = 'SELECT * FROM company WHERE id = :id';
$result = $db->prepare($sql);
$result->bindParam(':id', $user['company_id'], PDO::PARAM_INT);
...

Ну а результат выводите в удобной вам форме с использованием HTML-разметки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы