Создаём свою таблицу в базе данных 1С-Битрикс
На днях мне поставили задачу написать свой функционал для нашего сайта на Битрикс, который бы выводил данные из таблицы в базе данных сайта. Таблицу требовалось создать новую, со следующими полями:
| id | category | question | answer |
Далее нужно было выводить на странице все записи этой таблицы, с разбивкой по категориям, в разные блоки, через цикл.
Задача совершенно не сложная, тем не менее, захотелось написать об этом пост. Начинающим разработчикам пригодится!
Создаём папку, в ней размещаем файл index.php
В файле размещаем стандартное содержимое Битрикс-файла: хедер, вызов мета-тегов, футер.
Далее нам необходимо создать свою таблицу в базе данных 1С-Битрикс. Средствами административной панели сделать это нельзя: если мы зайдём в раздел Администрирования, то нигде не увидим пункт «Создать новую таблицу». Однако, мы можем редактировать имеющиеся, через пункты навигации:
Администрирование —> Производительность —> Таблицы .
Чтобы создать таблицу, нам потребуется консоль (я использую PuTTY ) и root-доступ на сервер через SSH.
Подключаемся к серверу, входим в нашу БД с помощью команды:
mysql -uИмяПользователя -pПарольПользователя НазваниеБазыДанных
Смотрим, какие у нас есть таблицы:
show databases;
Выбираем нужную нам таблицу (ту, которая используется для нашего сайта). Посмотреть, какая БД используется, а также имя пользователя и пароль можно в папке /bitrix/php_interface/dbconn.php
use ИмяНашейБазыДанных;
Далее, смотрим, какие у нас есть таблицы (чтобы при создании новой избежать ошибок с одинаковым названием):
show tables;
Теперь нам нужно создать свою таблицу и на этом наше общение с консолью закончится.
Ниже я привожу строку создания таблицы. Вы можете скорректировать её на своё усмотрение. В частности, переименовать название самой таблицы (наша таблица называется ` questions `), а также название заголовков таблицы, за исключением id (в примере ниже это заголовки: ` category `, ` question `, ` answer `). Если Вам нужно больше столбцов, то добавьте, по аналогии.
CREATE TABLE `questions` ( `id` INT NOT NULL AUTO_INCREMENT , `category` VARCHAR(255) NOT NULL , `question` TEXT NOT NULL , `answer` TEXT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_general_ci;
Чтобы нам было что править в административной панели Битрикса, я всё же предлагаю заполнить таблицу минимальными тестовыми данными. Так нам проще будет ориентироваться в дальнейшем. Если Вам это не требуется — можете пропустить этот пункт.
INSERT INTO `questions` (`id`, `category`, `question`, `answer`) VALUES (NULL, 'Категория 1', 'Вопрос 1', 'Ответ 1'), (NULL, 'Категория 2', 'Вопрос 2', 'Ответ 2');
Теперь можем смело выходить из консоли. Первым делом закройте соединение с базой данных:
exit;
Переходим в админку Битрикса. Затем: Администрирование —> Производительность —> Таблицы .
Видим нашу таблицу. Меняем имеющиеся данные ( кроме id ), добавляем новые строки.
Теперь наша задача отфильтровать всё по категориям и вывести в красивые таблицы на нашу страницу. Количество таблиц должно быть равно количеству категорий.
Вписываем новый php-код на нашу страницу:
подключаемся к базе данных global $DB; // делаем запрос к БД, в котором получаем уникальные названия наших категорий $categoryQuery = $DB->Query("SELECT category FROM questions GROUP BY category"); // запускаем цикл и в массив $arrayCategory записываем названия наших категорий while($rowCategory = $categoryQuery->Fetch()) < $arrayCategory []= $rowCategory['category']; > ?>
Теперь нам нужно генерировать разметку страницы:
запускаем цикл столько раз, сколько у нас уникальных категорий ?> $arrayCategory as $category): ?> для каждой итерации цикла формируем новый запрос к БД, в котором отбираем все данные, соответствующие текущей категории ?> $query = $DB->Query(«SELECT * FROM questions WHERE category = ‘$category'»); ?>
| $category?> |
| $result[‘question’]?> |
| $result[‘answer’]?> |
После этого у нас получится столько таких табличек с данными, сколько у нас уникальных категорий:
| Категория |
| Вопрос 1 |
| Ответ 1 |
| Вопрос 2 |
| Ответ 2 |
| Вопрос 3 |
| Ответ 3 |
Подписывайтесь на группу в ВКонтакте, вступайте в сообщество на Facebook, чтобы всегда быть в курсе актуальных выпусков
W e b d e v e l o p m e n t b l o g !
Как создать таблицы в базе данных для своего модуля?
Подскажите как при установке своего модуля создать нужные к нему таблицы. Как я понял это надо сделать в файле install/index.php в методе InstallDB, но не очень понятен синтаксис процесса создания, к каким классам Битрикс надо обращаться.
Как создать описание для полей таблицы со всеми параметрами и можно ли создать таблицу используя только синтаксис D7 ( так как большая часть модуля у меня написана на нем)?
В таблице надо создать такой список полей:
ID // хранит первичный ключ с автоинкриментом
ELEMENT_ID
UF_XML_ID
ELEMENT_FIELDS // хранит сериализованный массив полей элемента highload-блока
HL_FIELDS
HLID
HLNAME
- Вопрос задан более трёх лет назад
- 2396 просмотров
Комментировать
Решения вопроса 1

делай либо хорошо, либо никак
Таблицы в БД создаются по старинке через SQL запрос create table . Собственно вы можете вынести создание таблиц с отдельный файл например install.sql , а в методе установки вызывать:
$sql = file_get_contents(__DIR__ .'/install.sql'); if ($sql) < Bitrix\Main\Application::getConnection()->query($sql); >
Как создать описание для полей таблицы со всеми параметрами и можно ли создать таблицу используя только синтаксис D7 ( так как большая часть модуля у меня написана на нем)?
Таблицы на сайтах и в базах знаний
Мы добавили возможность использовать таблицы на сайтах, в магазинах и базах знаний. Они подойдут для отображения различных структурированных данных.
Как добавить таблицу
Сейчас в таблицу можно вставить только текст, но, в будущем, они станут функциональнее. Мы работаем над этим.
Откройте страницу сайта в редакторе и выберите место, куда хотите поместить таблицу.
Как добавить таблицу в суперблок
Добавьте блок с текстом и сохраните изменения. После этого воспользуйтесь инструкцией из данной статьи.


На панели действий нажмите на изображение таблицы.

По умолчанию будет создана таблица с четырьмя столбцами и строками.

После создания таблицы вы можете изменить её размер или оставить всё как есть.
- Если хотите добавить столбцы или строки, нажмите на плюсик.

- Если хотите удалить столбцы или строки, выделите ненужный элемент и нажмите на корзину.

Как отменить изменения
Нажмите на стрелочку в правом углу страницы или нажмите Ctrl/Cmd + Z.
Настройки и действия с таблицами
В таблицах вы можете изменять положение столбцов и строк.
Как переместить строки и столбцы
Просто перетащите их мышкой в нужное место.

У таблиц есть несколько предустановленных стилей, которые изменяют оформление. А также можно настроить фон и цвет текста по-отдельности.
Как изменить стиль
Нажмите на галочку в углу таблицы, после этого откроется панель действий, на ней выберите подходящий стиль.

Как изменить цвет ячеек и текста
Чтобы изменить цвет строки или столбца, нажмите на него. После этого выберите цвет на палитре.

Чтобы изменить цвет текста в конкретной ячейке, выделите его и нажмите на кнопку Цвет.

Если хотите выделить цвет во всей строке или столбце, то выделите нужные элементы, а затем нажмите на кнопку Цвет.

Также таблицы можно копировать и удалять.
Выделите всю таблицу, для этого нажмите на галочку, после этого выберите нужное действие.

Скопированную таблицу можно вставить в другой блок. Выберите нужное место, а затем кликните на последнюю иконку в панели действий.
Как в битриксе создать таблицу
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы ( Marketplace > Обновление платформы ).
Ограничений нет
Визуальный редактор «1С-Битрикс: Управление сайтом» позволяет легко и наглядно создавать и редактировать таблицы без использования HTML HTML – технические коды, обеспечивающие различное отображение информации. Самый простой пример: выделить текст жирным шрифтом или с подчёркиванием.
Знание и умение применять эти коды — не обязательное, но желательное умение для Контент-менеджера. кода. Давайте рассмотрим процесс создания и редактирования таблицы.
Видеоурок
Как создать таблицу?
Кнопка создания таблицы находится на панели инструментов:


Появится поле , на котором вы мышью выделяете необходимое количество строк и столбцов.
Для более детальной настройки таблицы нажмите кнопку Вставить таблицу. :

Разберем поля формы:
- Строки/столбцы — количество строк и столбцов в создаваемой таблице.
- Ширина/высота — размер таблицы в пикселях (можно также задать размеры в процентах, используя знак %).
- Заголовки — расположение заголовка таблицы (верхняя строка, левая колонка, и сверху и слева).
- Граница — толщина границы таблицы в пикселях.
- Внешний/внутренний отступ ячеек — отступы внутри и снаружи ячейки в пикселях.
- Выравнивание — выравнивание таблицы на странице (слева, по центру, справа).
При необходимости задайте название таблицы, а также CSS класс и идентификатор (эта возможность для подготовленных пользователей, в большинстве случаев мы оставляем эти поля пустыми).
Как отредактировать таблицу?
Если у вас уже есть таблица, нажмите на нее правой кнопкой мыши для редактирования:

Меню позволяет вставлять ячейки и столбцы, удалять и объединять ячейки и выполнять другие операции по работе с таблицей.
Если вы выберете мышью таблицу, то увидите на панели навигации полную структуру таблицы:

Это удобно для редактирования отдельных элементов таблицы (элементы представлены в виде html-тегов). Просто нажмите на нужный элемент и выберите пункт Свойства.
Внимание! Штатный функционал редактирования не охватывает все возможности html-форматирования. Часть функционала, например: цвет рамки, фон таблицы, индивидуальный размер строк и так далее, можно реализовать только непосредственным редактированием кода таблицы. Для этого используйте режим правки страницы как html-кода и добавьте нужные теги.
Заключение
Для быстрого создания таблицы используйте визуальную форму, для подробной настройки — ручное создание таблицы. В следующем уроке мы поговорим о работе со ссылками.
Желательно это знать:
- HTMLbook — справочник по HTML
