Не получается сформировать SQL запрос - MySQL
Формулировка задачи:
Добрый день. У меня на сайте нужно вывести товары, но проблема в том, что вся информация разбросана по разным таблицам БД. Если большинство информации я смог связать по ID товара, то со ссылками какая-то беда. Сайт на DRUPAL 6. Есть некая таблица url_alias, в ней такие столбцы: pid, src, dst, language Мне нужно выдернуть адрес по такому условию - записи у которых src = /node/740, где 740 - ID товара. У меня есть массив из ID товаров
Вот такой запрос выводит как нужно
Как вместо h.src='node/840' поставить перебор массива $pages_id ? Вернее вместо 840 чтобы добавлялся перебор массива?
$pages_id= = array(840, 1411, 1390, 736, 898, 1578, 1337, 1381, 1581, 1563);
$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) . ")");
Решение задачи: «Не получается сформировать SQL запрос»
textual
Листинг программы
ON h.src= CONCAT('node/', n.nid)
Объяснение кода листинга программы
h.src
- это переменная, которая содержит значение 'node/'.n.nid
- это переменная, которая содержит числовое значение.CONCAT
- это функция, которая объединяет две строки в одну.node/
- это префикс, который добавляется в начало строки.nid
- это суффикс, который добавляется в конец строки.ON
- это оператор, который используется для объединения строк.h.src= CONCAT('node/', n.nid)
- это условие, которое объединяет строки и сравнивает результат с переменнойh.src
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д