ВопросОбращение к таблицам БД
Здравствуйте.
Расскажите, пожалуйста, поподробнее про связь с базами данных. Например, конкретная задача. В БД есть таблица с товарами. Надо вывести на странице сайта список товаров. Язык запросов мне знаком, на нем можно не останавливаться. Интересует имеено обращение к таблицам из Друпала и визуализация списка.
Заранее благодарю.
- michelle
- 29.05.2011
- 7200
Комментарии
Спасибо за вопрос, давно хотел написать что-то на эту тему. Теперь есть повод :)
Запросы в друпале делаются через функцию db_query, которая выполняет запрос к базе данных. Пример (выбираем nid и заголовки у всех материалов):
Далее полученное необходимо обработать. Здесь помогут три функции:
db_fetch_object - выбранные поля формируются в объект
Пример (выводит ссылки на все материалы):
db_fetch_array - то же самое что и предыдущая функция, только выбранные поля формируются в один массив
Пример (выводит ссылки на все материалы):
db_result - получает единственный результат выполнения запроса к базе:
Пример (выводит заголовок последнего материала):
В запросы так же можно передавать переменные. Пример выбора заголовка из 10й ноды:
Предыдущий пример эквивалентен следующему:
В запрос был добавлен LIMIT 0,1 исключительно для показательной оптимизации запроса (по возможности всегда добавляйте лимиты!)
Иногда так же полезной бывает функция db_last_insert_id($table, $field), которая берёт последнее записанное значение из таблицы $table поля $field.
Так же, наверное, стоит упомянуть функцию db_rewrite_sql(), которая позволяет переписывать запросы к бд, но лично я ей практически не пользуюсь.
Набора этих функций более чем достаточно для работы с базами данных :)
Было бы очень приятно узнать тоже самое, но относительно Drupal 7.
Вообще, мне непонятны такого рода вопросы и посты. Ведь нужная информация появляется при одном поисковом запросе. Плюс, конечно, друпал.орг
Статья с хабра по теме: http://habrahabr.ru/blogs/drupal/52469/
Negromovich, Drupal 7
Гораздо интереснее читать что-то из личного опыта, того что не найдёшь сразу, c чем пришлось поковыряться.
Комментировать