Не получается сформировать SQL запрос - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый день. У меня на сайте нужно вывести товары, но проблема в том, что вся информация разбросана по разным таблицам БД. Если большинство информации я смог связать по ID товара, то со ссылками какая-то беда. Сайт на DRUPAL 6. Есть некая таблица url_alias, в ней такие столбцы: pid, src, dst, language Мне нужно выдернуть адрес по такому условию - записи у которых src = /node/740, где 740 - ID товара. У меня есть массив из ID товаров
$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) . ")");
Как вместо h.src='node/840' поставить перебор массива $pages_id ? Вернее вместо 840 чтобы добавлялся перебор массива?

Решение задачи: «Не получается сформировать SQL запрос»

textual
Листинг программы
ON h.src= CONCAT('node/', n.nid)

Объяснение кода листинга программы

  1. h.src - это переменная, которая содержит значение 'node/'.
  2. n.nid - это переменная, которая содержит числовое значение.
  3. CONCAT - это функция, которая объединяет две строки в одну.
  4. node/ - это префикс, который добавляется в начало строки.
  5. nid - это суффикс, который добавляется в конец строки.
  6. ON - это оператор, который используется для объединения строк.
  7. h.src= CONCAT('node/', n.nid) - это условие, которое объединяет строки и сравнивает результат с переменной h.src.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5