0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 5552 Просмотров
*

salikoff

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Здравствуйте. Передо мной задача - из текста модуля делать запросы в базу данных и обрабатывать полученные результаты.
Я делаю так:

$my_hostname = "xxxxxxxxxxx";
$my_database = "xxxxxxxxxxxxxxxx";
$my_username = "xxxxxxxxxxx";
$my_password = "xxxxxxxxxxxxxx";
$my_coonect = mysql_pconnect($my_hostname, $my_username, $my_password) or trigger_error(mysql_error(),E_USER_ERROR);
$zapros = "SELECT * FROM jos_ля-ля-ля where id='тра-та-та' ORDER BY id DESC";
mysql_select_db($my_database, $my_connect);
$resultat_zaprosa = mysql_query($zapros) or die(mysql_error());     и так далее...

я понимаю, что это неправильно, так как это уже все в Joomla есть и хранится в каких-то переменных.
Подскажите, как правильно запрос надо писать?
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Например, можно посмотреть, как делаются запросы в каком-нибудь компоненте...
___
function subs_ok() {
	

	
global 
$database;
	
$qry "SELECT COUNT( `t`.`id` ) AS `total` FROM `jos_acajoom_subscribers` AS `t`";
	
$database->setQuery($qry);
	
$database->loadObject($user);
	
$tot $user->total;
...
}
В комнате с белым потолком
*

salikoff

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Спасибо, понял.  Все хранится в глобальной переменной $database
*

Kovryga

  • Захожу иногда
  • 99
  • 1 / 0
хочу продолжить тему, чтобы не начинать новую.

мне наоборот в моём компоненте необходимо обратиться к удаленной БД на другом на хосте, сделать выборку и обработать данные.
как правильно будет написать в компоненте обращение к удаленной БД?  Может есть встроенные средства в J!1.5?
*

Physicist

  • Глобальный модератор
  • 960
  • 190 / 0
  • Рябов Денис
Спасибо, понял.  Все хранится в глобальной переменной $database

Вообще-то в Joomla!1.5 объект БД берется так:
$database JFactory::getDBO();
*

Kovryga

  • Захожу иногда
  • 99
  • 1 / 0
а что по моему вопросу?
*

Kovryga

  • Захожу иногда
  • 99
  • 1 / 0
что никто не в силах подсказать или поделится опытом?
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
необходимо обратиться к удаленной БД на другом на хосте
как правило, администраторы запрещают коннекты к базе с удаленных серверов по соображениям безопасности...
*

Kovryga

  • Захожу иногда
  • 99
  • 1 / 0
ну вот возникла такая необходимость.
на удаленном сервере хранятся документы в электронном виде (более 200 ГБ).
в БД - описания этих документов.
надо с внешнего сайта делать выборку с удаленного сервера для получения информации о документах и ссылками на них.
хочу реализовать это всё в компоненте средствами J1.5

До этого делал отдельный шаблон и в нем прописывал всё необходимое.

Так что всё же посоветуете? Какое правильное решение будет в данной ситуации?
*

Kovryga

  • Захожу иногда
  • 99
  • 1 / 0
видать сложный вопрос...
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
видать сложный вопрос...
дело в том, что вам это нужно, поэтому вы можете себе позволить мониторить тему на предмет ответов, а у меня, к примеру, есть куча других дел, и все темы мониторить я точно не стану - только те, которые мне очень интересны... свое мнение я вам высказал... а как избавиться от необходимости подключения к удаленной базе - да очень просто, делайте просто к удаленному сайту запросы по http, получайте обратно данные в xml, разбирайте их, и отображайте так, как вам это необходимо... на той стороне понадобися небольшой скрипт, который по параметрам запроса будет выдергивать данные и формировать xml, а на этой стороне - компонент, который будет формировать запросы, и потом обрабатывать пришедший xml для отображения... вот и все...
*

Kovryga

  • Захожу иногда
  • 99
  • 1 / 0
to smart

спасибо, за ответ.

еще бы хотелось, если будет  время, пояснить по пововоду 
" делайте просто к удаленному сайту запросы по http, получайте обратно данные в xml,"

или подсказать где про такое взаимодействие почитать-посмотреть программную реализацию для примера.
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Копай класс Joomla для работы с базой данных. Смотри какие параметры он принимает, какие у него методы. Создай свой экземпляр класса (объект) и коннектись хоть к базе северной америки. В чем проблема?

Я например брал database.php для ветки 1.0.x и использовал его в написании другого простейшего движка, потому, что привык к нему :) В ветке 1.5 так тоже можно сделать, на то оно и ООП.
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Да не нужно коннектиться к удаленной базе, во-первых это не безопасно с точки зрения удаленной базы, во-вторых на большинстве серверов базы извне закрыты (по соображениям безопасности).

Я же указал направление, в котором имеет смысл двигаться. На одном сайте сделать кусок, который будет обращаться ко второму, получать результат в xml и отображать его уже как захочется... Ничего сложного тут нет, причем формат обмена естественно проще придумать самим, т.е. ни о каком xml-rpc или soap здесь речи не идет - все намного проще...
*

Kotofeich

  • Осваиваюсь на форуме
  • 20
  • 22 / 1
Не понимаю, а зачем нужно конектиться средствами joomla? Подключись просто командами php, их пока еще никто не запрещал вроде. А вообще глянь сюда. Там написано какие есть локальные переменные у объекта JDatabase. У самого нужды не было пока подключаться к сторонней бд, поэтому не копал и копать не буду:)
Linkfeedator - клиент к биржам sape, setlinks, linkfeed. Раскрутка и продвижение сайтов.
http://kjoomla.com - все для программистов на joomla 1.5
*

Rokogoko

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Насколько я понимаю, он может зайти на сайт, к которому надо подключится к базе данных и внедрить этот код, а потом записать все необходимые действия например связанные с эскортом данных.
Главное, я ответил на вопрос "как правильно обращаться к базе данных". Меня этот вопрос сильно волновал, так как я написал крайне полезный скрипт на php по работе с mysql, по моим подсчётам он экономит $3000 на рабочей силе.
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Главное, я ответил на вопрос "как правильно обращаться к базе данных".

Извините, нет такой буквы в этом слове. Имеется в виду подключение средствами Joomla (через её фреймфорк). Понятное дело, что можно создать mysql_connect и гуляй нога по коридору.

Проблемы посмотреть какого класса нужно создавать экземпляр и какие параметры он принимает нет, но мне лично лень, я пока с 1.5 не работаю.

я написал крайне полезный скрипт на php по работе с mysql, по моим подсчётам он экономит $3000 на рабочей силе.

В день/месяц/год?
*

Rokogoko

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Имеется в виду подключение средствами Joomla (через её фреймфорк). Понятное дело, что можно создать mysql_connect и гуляй нога по коридору.

Проблемы посмотреть какого класса нужно создавать экземпляр и какие параметры он принимает.
Именно, это я пытаюсь сейчас понять. Как работать через фреймворк, в данный момент экспериментирую с этим. Пока не понятно из-за того, что не могу разобраться с теоретической частью вопроса.
*

Rokogoko

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
есть wiki специально для разработчиков
там есть ответ на этот вопрос
http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,framework:database_part1/
*

profiX0808

  • Захожу иногда
  • 497
  • 70 / 0
cтолкнулся с этой же проблемой :)
помогла ссыла Rokogoko
*

w00

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
А можно создать отдельный коннект для получения только одного параметра (цена) из сторонней бд?В каком файле нужно создавать коннект - vmart 1.1.3 ?
*

beliyadm

  • Легенда
  • 9517
  • 1652 / 66
  • Севастополь == Россия
А можно создать отдельный коннект для получения только одного параметра (цена) из сторонней бд?
еще раз - хостер позволяет удаленные соединения? На 99% если это виртуальный хостинг - нет
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Если хостер все же позволяет удаленное подключение то нужно действовать следующим образом.

Код: php

require_once ($root . 'libraries' . DS . 'joomla' . DS . 'base' . DS . 'object.php');
require_once ($root . 'libraries' . DS . 'joomla' . DS . 'database' . DS . 'database.php');
require_once ($root . 'libraries' . DS . 'joomla' . DS . 'database' . DS . 'database' . DS . 'mysql.php');

$options['host'] = 'host';
$options['user'] = 'user';
$options['password'] = 'password';
$options['database'] = 'db';
$options['prefix'] = 'dbprefix';

$db = new JDatabaseMySQL($options);

$root - естественно свой определишь
и дальше как обычно работаешь с $db

примеры смотри тут

*

w00

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Mitrich спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент вывода информации из внешней базы данных

Автор rambeer

Ответов: 33
Просмотров: 8440
Последний ответ 12.09.2014, 05:01:34
от Mad_Doc
Как правильно прописать JRoute

Автор voland

Ответов: 9
Просмотров: 6769
Последний ответ 24.03.2012, 00:17:27
от chikvito
передача данных в компоненте через GET и POST?

Автор NTFS

Ответов: 1
Просмотров: 2080
Последний ответ 12.03.2010, 10:02:28
от Mitrich
Выборка данных из загруженной страницы

Автор sph

Ответов: 9
Просмотров: 2474
Последний ответ 19.07.2009, 23:41:08
от sph
Как вывести данные с базы данных?

Автор vod-profi

Ответов: 0
Просмотров: 1388
Последний ответ 21.04.2009, 19:08:34
от vod-profi