[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Встроенные запросы
roland_07
Есть в общем форма из которой мы получаем id страны и города, которые мы в последствии используем для выбора данных из таблицы.
Я это себе так представляю
PHP
$sql = mysql_query(SELECT * FROM tab WHERE id_country=$country) UNION (SELECT * FROM tab  WHERE id_city=$city  )

Но что-то не получается, выдает ошибку. Если удалить второй селект - все работает, но вот мне необходимы они оба.
Есть ли какой-нибудь другой способ двойных селектов?



Спустя 2 минуты, 53 секунды (18.07.2009 - 23:38) waldicom написал(а):
Не касаясь того, что синтаксически это не правильно, хотелось бы спросить, а зачем два раза WHERE во втором запросе?

Спустя 8 минут, 28 секунд (18.07.2009 - 23:47) PandoraBox2007 написал(а):
PHP
$sql = "SELECT * FROM tab WHERE id_country='$country' UNION (SELECT * FROM tab WHERE id_city='$city')";
$result mysql_query($sql);

Спустя 1 час, 26 секунд (19.07.2009 - 00:47) roland_07 написал(а):
у меня в общем так

PHP
$result1 = mysql_query("SELECT * FROM advert WHERE id_country=$country) UNION (SELECT * FROM advert WHERE id_city=$city) UNION (SELECT * FROM advert WHERE  id_razdel=$razdel) UNION ( SELECT * FROM advert WHERE id_podrazdel=$pdrazdel )", $conn);
 while($row1=mysql_fetch_array($result1))


что тут изменить?

Спустя 8 часов, 41 минута, 38 секунд (19.07.2009 - 09:29) Nikitian написал(а):
Замените "union" на "union all". И как бэ тут телепатов нет и текст ошибки лучше всё-таки привести.

Спустя 1 час, 30 минут, 50 секунд (19.07.2009 - 11:00) roland_07 написал(а):
поменял на union all
выдает всю ту же ошибку

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\example\search.php on line 131

на вот эту строку
while($row1=mysql_fetch_array($result1))

Спустя 1 час, 37 минут, 48 секунд (19.07.2009 - 12:38) glock18 написал(а):
ошибка в запросе. выведи, что возвращает mysql_error();

Спустя 4 дня, 7 часов, 52 минуты, 44 секунды (23.07.2009 - 20:30) roland_07 написал(а):
В общем может я не так объяснил что я хочу реализовать, в общем есть четыре селекта страна-город, раздел-подраздел, при выборе которых получаю их id и делаю селект из таблицы данных им соответствующих. А вот как реализовать такой мнолочисленный запрос не знаю, подскажите если кто знает

Спустя 14 минут, 35 секунд (23.07.2009 - 20:45) Gabriel написал(а):
а ничего что переменные стоят не закрытые в кавычки чтото вроде етого
PHP
$result1 mysql_query("SELECT * FROM advert WHERE id_country='".$country."') UNION (SELECT * FROM advert WHERE id_city='".$city."')
UNION (SELECT * FROM advert WHERE  id_razdel='"
.$razdel."') UNION ( SELECT * FROM advert WHERE id_podrazdel='".$pdrazdel."'"), $conn);
while(
$row1=mysql_fetch_array($result1))

Спустя 22 минуты, 36 секунд (23.07.2009 - 21:07) roland_07 написал(а):
это пробовал все равно выдает ошибку на строку while($row1=mysql_fetch_array($result1))
мол: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Спустя 6 минут, 6 секунд (23.07.2009 - 21:14) Gabriel написал(а):
неверный аргумент тоесть ошибка в запросе к БД.
вовсяком случае у меня случались такие ошибки именно изз неправильного запроса.

Спустя 12 минут, 18 секунд (23.07.2009 - 21:26) sergeiss написал(а):
Хотелось бы всё-таки услышать, что же хочет получить автор темы в результате запроса? Иначе вообще разговор ни о чём получается.

Спустя 21 минута, 16 секунд (23.07.2009 - 21:47) Nikitian написал(а):
При такой ошибке надо смотреть что говорит mysql_error или mysql_num_rows($result1) возвращает ноль

Спустя 9 минут, 20 секунд (23.07.2009 - 21:56) sergeiss написал(а):
Nikitian - тут проблема в том, что пока не было вообще ни одного (ни одного!!!) нормального запроса во всей теме, да еще и непонятно, что же хочет автор.

Спустя 2 часа, 24 минуты, 39 секунд (24.07.2009 - 00:21) roland_07 написал(а):
Я хочу выбрать данные соответствующие идентификаторам полученным в результате поиска. Т.е. есть форма поиска в которой четыре селекта при выборе которых и сабмите делается запрос к базе и выбираются данные соответствующие этим id.

Спустя 11 минут, 25 секунд (24.07.2009 - 00:33) pas написал(а):
Возможно я не так понял проблему, но в данном случае достаточно сделать так:
PHP
$sql = mysql_query("SELECT * FROM `advert` WHERE `id_country`=$country AND `id_city`=$city");

Спустя 12 часов, 39 минут, 41 секунда (24.07.2009 - 13:12) Mizka написал(а):
Цитата
PHP 
$sql = mysql_query(SELECT * FROM tab WHERE id_country=$country) UNION (SELECT * FROM tab  WHERE id_city=$city  )


Но что-то не получается, выдает ошибку. Если удалить второй селект - все работает, но вот мне необходимы они оба.
Есть ли какой-нибудь другой способ двойных селектов?

PHP
$sql = mysql_query("SELECT * FROM `tab` WHERE `id_country` = '$country' AND `id_city` = '$city'");
вот и всё.

Спустя 1 час, 13 минут, 18 секунд (24.07.2009 - 14:26) roland_07 написал(а):
спасибо, получилось!

Спустя 21 минута, 46 секунд (24.07.2009 - 14:47) sergeiss написал(а):
Mizka - а назови хотя бы одно принципиальное отличие твоего ответа от ответа pas, написанного прямо перед твоим, и за почти 13 часов до него.

Цитата (pas @ 24.07.2009 - 01:33)
$sql = mysql_query("SELECT * FROM `advert` WHERE `id_country`=$country AND `id_city`=$city");


Цитата (Mizka @ 24.07.2009 - 14:12)
$sql = mysql_query("SELECT * FROM `tab` WHERE `id_country` = '$country' AND `id_city` = '$city'");


Вообще-то, такие действия являются прямым нарушением п.II.6 Правил форума, да и просто противоречат здравому смыслу.

Спустя 54 минуты, 39 секунд (24.07.2009 - 15:42) Mizka написал(а):
Цитата
Mizka - а назови хотя бы одно принципиальное отличие твоего ответа от ответа pas, написанного прямо перед твоим, и за почти 13 часов до него.

у него в запросе переменные без кавычек. так и будет искать в теблице id_country равно строке $country, возможно ошибаюсь. Ну удали сообщение если хочешь.

Спустя 9 минут, 2 секунды (24.07.2009 - 15:51) sergeiss написал(а):
Переменные, имена которых начинаются с id_..., обычно являются целыми числами. Указание величины в кавычках, как у тебя, не будет ошибкой... Но не является принципиальным отличием.

Спустя 6 минут, 44 секунды (24.07.2009 - 15:58) pas написал(а):
Цитата
так и будет искать в теблице id_country равно строке $country, возможно ошибаюсь.


Если строка определяется в двойных кавычках, либо при помощи heredoc, переменные внутри нее обрабатываются. Если интерпретатор встречает знак доллара ($), он захватывает так много символов, сколько возможно, чтобы сформировать правильное имя переменной.
(с) http://docs.php.net/manual/ru/language.typ....string.parsing

Спустя 1 день, 27 минут, 36 секунд (25.07.2009 - 16:25) Gram написал(а):
текст
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.