Goldensites. Создание сайтов. Разработка сайтов.

Новое на сайте

Редизайн сайта для Avantage, г.Новосибирск
Сайт на домене www.avantage-sib.ru; Разработка эксклюзивного дизайна в соответствии с
Создание сайта для оценочной компании Эстима, г.Барнаул
Сайт на домене www.estimacom.ru; Разработка эксклюзивного дизайна в соответствии с
Разработка сайта для ООО Алтай-Метран-Сервис
Сайт на домене www.ams-bar.ru; Разработка эксклюзивного дизайна для организации, занимающейся
Добавить сайт в каталог лучшихсайтов Joomla!

Вход в личный кабинет Goldensites

LiveZilla Live Chat Software

Портфолио по дизайну сайтов, разработке сайтов, созданию фирменного стиля

Использование классов для работы с базой данных в ваших скриптах Joomla!

Благодаря использованию встроенного класса, Вам будет достаточно пару строк, чтобы получить результат из БД в различных видах. Такой подход обеспечит максимальную совместимость и гибкость для разрабатываемого сайта Joomla!
Для начала Вам будет необходимо создать экземляр объекта класса для работы с базой данных в Joomla! Что касается запроса - вы можете использовать стандартный синтаксис SQL. Единственное, что вам нужно изменить - префикс таблиц. Чтобы сделать ваш запрос SQL наиболее гибким, используйте маску "jos_", при следующем шаге $db->setQuery(); эта строка заменится правильным префиксом.

<?php
//получаем объект БД
<strong>$db =& JFactory::getDBO();</strong>
//ваш запрос
$query = "SELECT * FROM jos_example_table WHERE id = 999999;";
$db->setQuery($query);

Для обеспечения максимальной совместимости необходимо для имен полей использовать метод $db->nameQuote($name), а для значений $db->Quote($value)
<?php
$query = "
 SELECT * 
 FROM ".$db->nameQuote('jos_example_table')."  
 WHERE ".$db->nameQuote('id')." = ".$db->quote('999999').";

Конечно вы можете поместить свой SQL запрос непосредственно в функцию $db->setQuery(), но для получения наиболее читабельного кода советуем вам сначало присвоить запрос переменной (обычно это $query), а затем переменную вставлять в $db->setQuery($query). Метод setQuery($query) создает запрос к БД для последующего его выполнения либо для получения результата.
Метод setQuery() принимает 3 необязательных параметра:
$offset - указывает смещение
$limit - устанавлмвает лимит затронутых записей (может использоваться для пагинации в Joomla!)
$prefix - префикс таблицы БД Joomla!

Выполнение запроса
Чтобы выполнить запрос Joomla распологает несколькими функциями, которые отличаются по их возвращаемому значению.

query()
Этот метод является основным в Joomla для выполнения SQL-запроса к базе данных. Этот метод используется при разработке расширений Joomla для
администрирования БД, т.е. создания, удаления и редактирования записей и таблиц. Синтаксис метода query() очень прост:
<?php
$db =& JFactory::getDBO();
$query = "/* some valid sql string */";
$db->setQuery($query);
$result = $db->query();

В случае успеха метод возвращает результат, в противном случае FALSE.

loadResult()
Использовать loadResult() при работе с БД в Joomla нужно только в том случае, если вы ожитаете единственное значение в результате запроса.
таблица1

Часто он используется для выяснения количества записей:
<?php
$db =& JFactory::getDBO();
$query = "
 SELECT COUNT(*)
 FROM ".$db->nameQuote('jos_my_table')."
 WHERE ".$db->nameQuote('name')." = ".$db->quote($value).";
 ";
$db->setQuery($query);
$count = $db->loadResult();

Или если необходимо вернуть единственное поле:
<?php
$db =& JFactory::getDBO();
$query = "
 SELECT ".$db->nameQuote('field_name')."
 FROM ".$db->nameQuote('jos_my_table')."
 WHERE ".$db->nameQuote('some_name')." = ".$db->quote($some_value).";
 ";
$db->setQuery($query);
$result = $db->loadResult();
продолжение следует...

Добавить комментарий


Защитный код
Обновить


Есть что почитать

Использование классов для работы с базой данных в ваших скриптах Joomla!
Благодаря использованию встроенного класса, Вам будет достаточно пару строк, чтобы
Создание сайта-визитки для ООО "Квадрат Мастер"
Регистрация доменного имени kvmaster.ru; Разработка дизайна в соответствии с пожеланиями
Создание компонента Joomla! 1.6 (Часть 3) Добавляем тип пункта меню
Продолжаем цикл статей для тех, кто создает сайт на joomla!
Разработка сайтов-визиток
Сайт-визитка - небольшой сайт, который состоит из нескольких страниц. На
Разработка компонента Joomla! 1.6 (часть 6) - Используем базу данных
Компоненты Joomla! 1.6.x обычно управляют своим содержанием, используя базу данных.