• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Shouldercannon
  • Дата начала
S

Shouldercannon

Доброго времени суток!
Есть две таблицы
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']; // Выводим данные
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!