Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
vinegredz

Как получить данные из внешней базы данных?

Рекомендованные сообщения

Здравствуйте!

 

Подскажите, пожалуйста, как исправить ошибку. Я пытаюсь забрать контент для таблицы из внешней базы данных (тоже IPS).

 

// Создал подключение к внешней базе данных (работает)
{{$connection = \IPS\Db::i( 'mydatabase ', array('sql_host' => 'localhost', 'sql_user' => 'user', 'sql_pass' => 'password', 'sql_database' => 'database', 'sql_port' => 3306, 'sql_socket' => '/var/lib/mysql/mysql.sock', 'sql_utf8mb4' => true,) );}}

// Получил данные из конкретного поля (работает)
{{$select = \IPS\Db::i( mydatabase )->select( '*', 'cms_custom_database_8', array( 'primary_id_field=?', 5231 ) )->first();}}
{$select['field_21']}

// Пытаюсь получить данные 
{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records8', $record->url(), array(array(\IPS\Db::i( mydatabase )->findInSet('field_21', array($model_id)))));}}
{$table|raw}

 

Получаю ошибку (Class 'IPS\cms\Records8' not found), что не существует класса IPS\cms\Records8, что логично, потому что этот класс есть только в другой установке IPB. Подставлял сюда класс, который существует для установки, из которой делается подключение, но тогда ошибка, что не найдена колонка field_21 в базе данных. Читал документацию, но не нашел что еще принимает этот параметр на входе. Весь код использую в шаблонах IPB Pages. И первая и вторая установки версии 4.3.6

Поделиться сообщением


Ссылка на сообщение

А с чего должно быть такого класса? Этот класс имеет единственное название - IPS\cms\Records

Поделиться сообщением


Ссылка на сообщение

Вы не можете использовать класс \IPS\Helpers\Table\Content для работы со сторонней БД. Можете разместить скрипт на втором сайте и получить готовый HTML в другой скрипт, на первом, с помощью file_get_contents().

Поделиться сообщением


Ссылка на сообщение

Сделал работающий вариант:

УСТАРЕВШИЙ КОД
 

И по сути я могу управлять шаблоном вывода как захочется, но это не удобно, потому что приходится вносить правки в двух местах сразу.

 

Поэтому вопрос. Как мне выводить данные из внешней базы данных используя шаблон template_id = 3 таблицы cms_templates этой же внешней базы данных?

 

Или я слишком мудрю и есть способы проще без минусов?

 

Вариант с file_get_contents() я не осилил.

Поделиться сообщением


Ссылка на сообщение

А чем класс форума из первого примера для работы с внешней бд не устраивает? Подключение можно вывести в отдельный файл который отрабатывает в обоих случаях, а в шаблоне использовать только запросы.

 

Ну можете создать файл, где происходит запросы, а в шаблоне обращаться к нему через file_get_contents.

 

А вообще, делайте по мере своих возможностей, если работает то не стоит усложнять себе задачу.

Поделиться сообщением


Ссылка на сообщение

Кстати можно создать шаблон форума, встунуть туда ваш код и подключать его в нужном месте.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...