X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> UNION
buisnesmen
buisnesmen
Topic Starter сообщение 5.6.2016, 12:22; Ответить: buisnesmen
Сообщение #1


Всем доброе утро. Как ни странно, но че то с не складывается у меня с union )))
Написал запрос

[PHP]
$sql = "
(SELECT `cat`.`id` FROM `cat` WHERE `cat`.`name`='".mysql_real_escape_string($ar_colls[0])."' LIMIT 1)
UNION
(SELECT `brand`.`id` FROM `brand` WHERE `brand`.`name`='".mysql_real_escape_string($ar_colls[1])."' LIMIT 1)
UNION
(SELECT `model`.`id` FROM `model` WHERE `model`.`name`='".mysql_real_escape_string($ar_colls[2])."' LIMIT 1)
UNION
(SELECT `series`.`id` FROM `series` WHERE `series`.`name`='".mysql_real_escape_string($ar_colls[3])."' LIMIT 1)
UNION
(SELECT `zip`.`id` FROM `zip` WHERE `zip`.`name`='".mysql_real_escape_string($ar_colls[4])."' LIMIT 1)
UNION
(SELECT `city`.`city_id` FROM `city` WHERE `city`.`name`='".mysql_real_escape_string($ar_colls[11])."' LIMIT 1)
";
[/PHP]

На всякий случай проверил его через phpmyadmin - все отлично работает, выводит все данные, что нужно.

Дальше в php написал
[PHP]
$sql = mysql_query($sql) or die(mysql_error());
$r = mysql_fetch_row($sql);
print_r ($r);
[/PHP]

Получаю результат Array ( [id] => 15 ). Собственно вопрос где другие данные? Как их вывести?
Вроде погуглил, должен через assoc выводить, в моем случае через row, но результат не выводится. В чем проблема?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
buisnesmen
buisnesmen
Topic Starter сообщение 6.6.2016, 11:21; Ответить: buisnesmen
Сообщение #2


Подсказок не будет?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 10.6.2016, 17:48; Ответить: Degradator
Сообщение #3


тут не катит mysql_fetch_row
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Den1xxx
Den1xxx
сообщение 11.6.2016, 10:36; Ответить: Den1xxx
Сообщение #4


(buisnesmen @ 5.6.2016, 14:22) *
SELECT `cat`.`id` FROM `cat`

Вы выводите id из разных таблиц, и получаете результат только из последнего запроса, он перезаписывает предыдущие ключи.
В результате от UNION нет толку — работает последний запрос, остальные впустую.
Для сохранения всех результатов нужно было сделать алиасы на совпадающие ключи, например
SELECT `cat`.`id` as catid FROM `cat`
`
Ну и так далее по тексту.

Про получение результата уже сказали, уточним:
(buisnesmen @ 5.6.2016, 14:22) *
$sql = mysql_query($sql) or die(mysql_error());
$r = mysql_fetch_row($sql);
print_r ($r);

Опустив то, что в 2016 уже стыдно через старые драйвера с базой работать, здесь Вы выбираете 1 результат.
Должно быть что-то так:
[PHP]$sql = mysql_query($sql) or die(mysql_error());
if (!empty($sql)) {
while($row = mysql_fetch_assoc($sql)) {
$result[]= $row;
}
}[/PHP]
И результат забираем из $result.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Выплаты через Western Union
7 wep 3193 19.7.2010, 22:38
автор: wep


 



RSS Текстовая версия Сейчас: 28.3.2024, 19:59
Дизайн