powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сформировать запрос SQL
5 сообщений из 5, страница 1 из 1
Помогите сформировать запрос SQL
    #39450566
Batyabest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. У меня на сайте нужно вывести товары, но проблема в том, что вся информация разбросана по разным таблицам БД. Если большинство информации я смог связать по ID товара, то со ссылками какая-то беда. Сайт на DRUPAL 6. Есть некая таблица url_alias, в ней такие столбцы: pid, src, dst, language Мне нужно выдернуть адрес по такому условию - записи у которых src = /node/740, где 740 - ID товара. У меня есть массив из ID товаров

Код: php
1.
$pages_id= = array(840, 1411, 1390, 736, 898, 1578, 1337, 1381, 1581, 1563);



Вот такой запрос выводит как нужно

Код: php
1.
$nodes = db_query("SELECT n.title, p.field_prod_price_value, p.field_sred_ocen_value, p.field_kol_gol_value, h.dst FROM ({node} n INNER JOIN {content_type_prod} p ON n.nid = p.nid)  INNER JOIN {url_alias} h ON h.src='node/840' WHERE n.nid IN (" . implode(",", $pages_id) . ")");



Как вместо h.src='node/840' поставить перебор массива $pages_id ? Вернее вместо 840 чтобы добавлялся перебор массива?
...
Рейтинг: 0 / 0
Помогите сформировать запрос SQL
    #39450599
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это форум по MySQL, и PHP-код тут как бы не по делу...
...
Рейтинг: 0 / 0
Помогите сформировать запрос SQL
    #39450606
Batyabest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Согласен.
Я выделил только SQL запрос.
Как можно подставить перебор массива в sql запрос, чтобы вместо h.src='node/840' был перебор массива?
Код: sql
1.
SELECT n.title, p.field_prod_price_value, p.field_sred_ocen_value, p.field_kol_gol_value, h.dst FROM ({node} n INNER JOIN {content_type_prod} p ON n.nid = p.nid)  INNER JOIN {url_alias} h ON h.src='node/840' WHERE n.nid IN (" . implode(",", $pages_id) . ")"
...
Рейтинг: 0 / 0
Помогите сформировать запрос SQL
    #39450651
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так и делайте абсолютно так же, как и в секции WHERE:
Код: sql
1.
INNER JOIN {url_alias} h ON h.src IN (список_значений_из_массива)


тем же самым IMPLODE преобразуя в CSV-список массив src-шек (не забудьте сделать обрамление значений кавычками! ибо строки).
...
Рейтинг: 0 / 0
Помогите сформировать запрос SQL
    #39450656
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя поскольку везде INNER JOIN, то разумнее записАть текст запроса в форме произведения с отбором, а не размазывать условия. Т.е. что-то типа
Код: sql
1.
2.
3.
4.
5.
SELECT n.title, p.field_prod_price_value, p.field_sred_ocen_value, p.field_kol_gol_value, h.dst 
FROM {node} n, {content_type_prod} p, {url_alias} h
WHERE n.nid IN (" . implode(",", $pages_id) . ")"
  AND h.src IN ('" . implode("','", $adresses) . "') 
  AND n.nid = p.nid
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сформировать запрос SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]