Форум -> Обо всём... -> Как вывести в модуле инфу из другой базы данных? |
Как вывести в модуле инфу из другой базы данных? |
---|
shadow | Дата: 22.01.2009, в 16:44 | Сообщение №1 |
  Активный участникПользователь №: 520 Сообщений: 100
 | нужно вывести в модуле инфу из другой базы данных как подключить к модулю другую БД, и как составлять запрос в нее? |
|
|
SHAKA1 | Дата: 22.01.2009, в 17:01 | Сообщение №2 |
  УчастникПользователь №: 323 Сообщений: 77
 | Попробуй так:
в модуле пропиши:
Код | 1
| $db2 = new sql_db('dbhost', 'dbuname', 'dbpass', 'dbname', false);
if (!$db2->db_connect_id) die("<center><b>Проблема с БД.</b></center>"); |
dbhost - Сервер базы данных
dbuname - Имя пользователя базы данных
dbpass - Пароль пользователя базы данных
dbname - Название базы данных
и уже работаешь с ней как и со слаедовской БД, но вместо $db ставишь $db2
Пример файла modules/ТвойМодуль/index.php твоего модуля:
Код | 1
| <?php
if (!defined('MODULE_FILE')) {
Header("Location: ../../index.php");
exit;
}
$db2 = new sql_db('localhost', 'shaka1', '698548', 'my_base', false);
if (!$db2->db_connect_id) die("<center><b>Проблема с БД.</b></center>");
function my_menu() {
global $db2;
head();
OpenTable();
list($cat) = $db2->sql_fetchrow($db2->sql_query("SELECT Count(id) FROM tvoia_table"));
$result = $db2->sql_query("SELECT type FROM tvoia_table WHERE id='1'");
list($type) = $db2->sql_fetchrow($result);
echo "Всего категорий: $cat";
echo "<br />Тип категории №1: $type";
CloseTable();
foot();
}
switch ($op) {
default:
my_menu();
break;
}
?> |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно SHAKA1 22.01.2009 г. в 17:25:12 |
|
|
Serg_pnz | Дата: 23.01.2009, в 08:14 | Сообщение №3 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | shadow, обсуждалось ;)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 23.01.2009 г. в 08:14:49 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 26.01.2009, в 15:44 | Сообщение №4 |
  Активный участникПользователь №: 520 Сообщений: 100
 | поднимаю вопрос,
ко второй базе подключаюсь ок (по примеру выше)
прописываю в начале модуля $db2, затем добавляю в глобал функций, но при этом выпадают все блоки... то есть падает первое подключение...
попытался по аналогии в конце модуля прописать $db чтоб восстановить но нечего не выходит...
ЧТО НЕ ТАК? |
|
|
Serg_pnz | Дата: 26.01.2009, в 16:04 | Сообщение №5 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | shadow, я же тебе дал ссылку...
Смотри внимательнее, там после подключения ко второй базе идет переподключение к первой. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 28.01.2009, в 10:56 | Сообщение №6 |
  Активный участникПользователь №: 520 Сообщений: 100
 | Serg_pnz,
Цитата | shadow, я же тебе дал ссылку... |
читал все же не помогает, вообще это решение как оказалось тупиковое... для блока может и сработает но для модуля.... даже если в каждой функции отдельно пере подключатся все работает с большим скрипом... а некоторые запросы к бд вообще отказываются срабатывать так кат Пед намудри с ними в musql.php и некоторые функции от тудо просто отваливаются....
Все же решил вопрос... но совсем по другому...
не подключая к модулю не чего дополнительного выполняем стандартный запрос $db->sql_query(...... но в указании имя таблицы пишем ИМЯ_БАЗЫ.ИМЯ_ТАБЛИЦЫ
и все замечательно работает при условии что базы на одном хосте и пользователь стандартной БД имеет как минимум права на чтение второй базы.... |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|