sql запрос во внешнюю БД

Главные вкладки

Аватар пользователя xjunkiex xjunkiex 15 ноября 2014 в 19:08

Вводные данные:
сервер PostgreSQL, какая–нибудь CMS (drupal, например, ибо сам с нуля на php я такого не осилю).
Требуется:
Страничка с полем ввода, кнопка и комментарий к ним.
Из поля ввода значение должно уходить в определенное место в sql запросе, а результат выводиться на страничку.

Например:
SELECT
erpi_purchase.username,
SUM(erpi_positions.positionorder),
un_cg_product.name
FROM
erpi_purchase AS erpi_purchase
LEFT JOIN erpi_positions AS erpi_positions
LEFT JOIN un_cg_product AS un_cg_product
ON un_cg_product.markingofthegood = erpi_positions.goodscode
ON erpi_purchase.id = erpi_positions.id_purchase
where
un_cg_product.name ilike '%карта%'
AND
erpi_purchase.saletime > (now() — '31 days'::interval)
GROUP BY
erpi_purchase.username,
un_cg_product.name
ORDER BY
sum desc,
erpi_purchase.username

вот то что жирным шрифтом и должно меняться в поле для ввода, ну и таких запросов около десятка.
Результат — табличка в новом окне.

Реально ли такое и есть ли готовые решения?

Комментарии

Аватар пользователя voviko voviko 15 ноября 2014 в 22:18

"xjunkiex" wrote:
Реально ли такое и есть ли готовые решения?

Во первых, нужна форма, и обработчик формы (form api)
Во вторых в settings.php прописать доступ ко второй базе, и выполнять sql запрос, к этой базе.

Аватар пользователя xjunkiex xjunkiex 16 ноября 2014 в 17:23

voviko wrote:

Во первых, нужна форма, и обработчик формы (form api)
Во вторых в settings.php прописать доступ ко второй базе, и выполнять sql запрос, к этой базе.

а не затруднит дать ссылки на что-то подобное, желательно конечно how-to для ламеров, не обязательно постгерс и друпал, чтобы вообще понять принцип и что куда подключать, как добавлять обработчик форм?

Аватар пользователя Chyvakoff Chyvakoff 17 ноября 2014 в 10:37

Делаешь модуль
В модуле делаешь форму
В обработчике(тот что _submit) дёргаешь БД
Доступ ко второй БД прописываешь в sites/default/settings.php - там есть пример как коннектиться к нескольким базам.
В обработчике не забудь функцией db_set_active переключиться на неосновную БД.
Всё.