Получить данные из двух таблиц

Тема в разделе "SQL", создана пользователем Shouldercannon, 30 дек 2015.

  1. Shouldercannon

    Shouldercannon Well-Known Member

    Регистрация:
    25 май 2010
    Сообщения:
    125
    Симпатии:
    0
    Доброго времени суток!
    Есть две таблицы
    Код (PHP):
    CREATE TABLE `users` (
      `uid` int(10) unsigned NOT NULL auto_increment,
      `name` varchar(20) NOT NULL,
      PRIMARY KEY  (`uid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
     
    CREATE TABLE `admins` (
      `uid` int(10) unsigned NOT NULL auto_increment,
      `flags` varchar(20) NOT NULL,
      PRIMARY KEY  (`uid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    Вывожу:
    Код (PHP):
    $query = "SELECT * FROM users, admins WHERE users.uid = '".mysql_real_escape_string($_GET['usrid'])."'";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
    $row = mysql_fetch_array($result);
    echo $row['name'].'~'.$row['flags']; // Выводим данные
    В таблице есть четыре пользователя и у всех поголовно выводится флаг z, на деле у ID 1 должен быть флаг z, у ID 2 флаг a.

    Есть две таблицы: users и admins. В одной вся информация о пользователе, во второй админские права. Всё в одну таблицу сваливать не хочу.
    В обеих таблицах UID это ID пользователя.
    Задача заключается в том, чтобы при получении информации о пользователе, зная его UID, мимо дела заглянуть в таблицу admins и получить данные по интересующему UID. Пусть даже пустота будет, если за данным UID ничего не числится.
    Пока вижу такое решение
    Код (PHP):
    $query = "SELECT `name` FROM `test1` WHERE `uid` = '".mysql_real_escape_string($_GET['usrid'])."'";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
    $row = mysql_fetch_array($result);
     
     
     
     
    $query = "SELECT `flags` FROM `test2` WHERE `uid` = '".mysql_real_escape_string($_GET['usrid'])."'";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
    $admin_flags = mysql_fetch_array($result);
     
     
     
     
    echo $row['name'].'~'.$admin_flags['flags']; // Выводим данные
     
    #1 Shouldercannon, 30 дек 2015
    Последнее редактирование модератором: 31 дек 2015
Загрузка...

Поделиться этой страницей