Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 13:39   #1
mixer94
Пользователь
 
Аватар для mixer94
 
Регистрация: 07.06.2009
Сообщений: 40
По умолчанию Два запроса к базе MySQL

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

Для примера вот как я подключаюсь:
Код:
mysql_connect("mysql", "login", "pass") or die("Could not connect: " . mysql_error());
mysql_select_db("my_db");
$result = mysql_query("SELECT * FROM mytable WHERE ID=".$_GET['tid']);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
Выбираю из таблицы mytable где ид = блаблабла, после нужно выбрать из другой таблицы ещё одну запись, а далее их обоих обработать...
Однако как не пробовал - ошибки...
Наверное есть какое то простое решение?
mixer94 вне форума Ответить с цитированием
Старый 27.10.2010, 13:43   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

по какому условию выбрать из второй таблицы.. они как то связаны? и что значит - их обработать?
ADSoft вне форума Ответить с цитированием
Старый 27.10.2010, 13:58   #3
mixer94
Пользователь
 
Аватар для mixer94
 
Регистрация: 07.06.2009
Сообщений: 40
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
по какому условию выбрать из второй таблицы.. они как то связаны? и что значит - их обработать?
да всё просто, проще некуда.
допустим есть в базе две таблицы.
мне нужно сделать запрос к первой таблице (наверно как то в переменную), затем запрос ко второй таблице. А после обрабатывать, под этим словом я имею ввиду брать инфу то с одной, то с другой таблицы не делая при этом лишних запросов к базе...

всё очень просто...
mixer94 вне форума Ответить с цитированием
Старый 27.10.2010, 14:03   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

ну например
Код:
mysql_connect("mysql", "login", "pass") or die("Could not connect: " . mysql_error());
mysql_select_db("my_db");
$result1 = mysql_query("SELECT * FROM mytable WHERE ID=".$_GET['tid']);
$result2 = mysql_query("SELECT * FROM mytable WHERE ID=".$_GET['tid']);
while($row = mysql_fetch_assoc($result1)){
    print $row[<field>];
}
while($row = mysql_fetch_assoc($result2)){
    print $row[<field>];
}
ssdm вне форума Ответить с цитированием
Старый 27.10.2010, 15:16   #5
mixer94
Пользователь
 
Аватар для mixer94
 
Регистрация: 07.06.2009
Сообщений: 40
По умолчанию

Цитата:
Сообщение от ssdm Посмотреть сообщение
ну например
Код:
mysql_connect("mysql", "login", "pass") or die("Could not connect: " . mysql_error());
mysql_select_db("my_db");
$result1 = mysql_query("SELECT * FROM mytable WHERE ID=".$_GET['tid']);
$result2 = mysql_query("SELECT * FROM mytable WHERE ID=".$_GET['tid']);
while($row = mysql_fetch_assoc($result1)){
    print $row[<field>];
}
while($row = mysql_fetch_assoc($result2)){
    print $row[<field>];
}
Всё, разобрался. За помощь спасибо, однако проблема была не в этом((.
Чего б я не сделал сервак выдавал:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Оказалось ошибка была в запросе...
mixer94 вне форума Ответить с цитированием
Старый 27.10.2010, 20:39   #6
Ruzarh
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 11
По умолчанию

PHP код:
mysql_connect("mysql""login""pass") or die("Could not connect: " mysql_error());
mysql_select_db("my_db");

$result mysql_query("SELECT `table1`.*, `table2`.* 
                                FROM `table1`,`table2` 
                                       WHERE `table1`.`ID` = "
.$_GET['tid']);

while(
$row mysql_fetch_assoc($result))
{
    print 
$row[<field>];

Единственная сложность будет если есть одинаковые поля в table1 и table2.
Ruzarh вне форума Ответить с цитированием
Старый 27.10.2010, 23:43   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Не сочтите за оффтоп - но не могу не заметить,что никто из трёх "помощников" не посчитал нужным запинать ТС за такое вот безобразие:
Цитата:
WHERE ID=".$_GET['tid']
Более того - в своих примерах они делают то же самое...( ADSoft - это не к вам:-) )

Что, SQL-Injection - уже не уязвимость???
Стыдно, господа программисты!!!

Последний раз редактировалось Andkorol; 27.10.2010 в 23:46.
Andkorol вне форума Ответить с цитированием
Старый 28.10.2010, 00:08   #8
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я тоже часто встречаю вопросы на форумах, где в запросах вставляется информация от пользователя необработанная. Видимо, о защите все думают уже на втором этапе, сначала целью является просто сделать рабочий код без проверок этих. А так можно почти в каждом топике обсуждать вопросы защиты...
motorway вне форума Ответить с цитированием
Старый 28.10.2010, 00:33   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

ИМХО - надо сразу вырабатывать у себя привычку писать "безопасный код".
Все эти "этапы" (особенно в больших приложениях) заканчиваются тем,что затыкать дыры в безопасности становится банально лень...
А ещё бывает часто,что начинает писать код один разработчик,а продолжает/заканчивает - другой(другие)....
А ещё - невнимательность,халатность при ревизиях кода,неопытность(часто такие ревизии поручают junior-ам)....

Вобщем - гораздо лучше и проще,когда сам разработчик "на автомате" экранирует запросы,обрабатывает пользовательский ввод и т.д...

Это хорошая привычка - делать всё один раз,и при этом делать отлично,не оставляя за собой дыры и баги,оставленные "на потом".
Andkorol вне форума Ответить с цитированием
Старый 28.10.2010, 08:48   #10
Ruzarh
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
ИМХО - надо сразу вырабатывать у себя привычку писать "безопасный код".
Все эти "этапы" (особенно в больших приложениях) заканчиваются тем,что затыкать дыры в безопасности становится банально лень...
А ещё бывает часто,что начинает писать код один разработчик,а продолжает/заканчивает - другой(другие)....
А ещё - невнимательность,халатность при ревизиях кода,неопытность(часто такие ревизии поручают junior-ам)....

Вобщем - гораздо лучше и проще,когда сам разработчик "на автомате" экранирует запросы,обрабатывает пользовательский ввод и т.д...

Это хорошая привычка - делать всё один раз,и при этом делать отлично,не оставляя за собой дыры и баги,оставленные "на потом".
На самом деле тут важен пример, я не хотел нагружать информацией не относящейся к вопросу!
Ruzarh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Два запроса MSD БД в Delphi 0 05.06.2010 18:59
Запрос к базе даных mysql Sound PHP 1 15.08.2009 12:14
MySql - перемешать варианты в базе Shadow_Wind PHP 9 17.10.2008 09:55
два запроса, которые нужно объединить в один. andrianov123 БД в Delphi 4 16.05.2008 16:06
Два запроса - один ExecSQL EdNovice БД в Delphi 1 27.06.2007 17:33