CONTENT MANAGEMENT SYSTEM
Blox Logo
Blox CMS — блочный метод сайтостроения
.
 
Blox Help

←→

Функция getTable

DEPRECATED

Функция getTable – универсальная функция для извлечения данных из любой таблицы базы данных сайта, собранного на системе Blox CMS.

//require_once $GLOBALS['bloxDir']."/functions/getTab.php";      // не обязательно
$table = getTable
(
    $tableName,
    $sampleId,
    $limit,
    $backward,
    $hidingFieldName,
    $recIdFieldName,
    $xSql,
    $isDatTable,
    $tdd,
    $dataBlockId
);
где:
$tableФункция возвращает двумерный массив. Первый ключ – последовательный номер (начиная с 0), второй ключ – имя поля (или столбца таблицы).

$tableNameИмя таблицы с префиксом.

Имеется в виду префикс, заданный в главном файле сайта (index.php).

Не забудьте перевести имя в нижний регистр!

$sampleIdИдентификатор выборки

Выборку желательно именовать с помощью произвольного цифробуквенного идентификатора.

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

$limitОграничение на число записей в выборке (число)

Этот аргумент нужно использовать обязательно, и обязательно, как переменную. Дело в том, что эта переменная является не только входным данным, но в нее также возвращается значение, которое может быть изменено в результате URL-запроса с параметра limit. Парамет же limit, объявленный в дескрипторе шаблона, никак не влияет на выборку с помощью данной функции.

$backwardЯвляется ли порядок обратным (true, false)

Этот аргумент нужно использовать обязательно, и обязательно, как переменную. Дело в том, что эта переменная является не только входным данным, но в нее также возвращается значение, которое может быть изменено в результате URL-запроса с параметра backward. Парамет же backward, объявленный в дескрипторе шаблона, никак не влияет на выборку с помощью данной функции.

$hidingFieldNameИмя поля, используемого для штатного скрытия записей (необязательный аргумент)

Не будут извлечены те записи, значения этого поля которых не пусты.

$recIdFieldNameИмя ключевого поля (необязательный аргумент)

Имя поля, в которое записываются идентификаторы (ключи) строк таблицы. Этот аргумент используется только для извлечения одной записи по ее идентификатору. Если же нужна одиночная запись вместе с соседними записями, то задавайте $GLOBALS['single'][$regularId] = ...

$xSqlДополнительное условие в SQL запросе (необязательный аргумент)

Строка должна начинаться со слова: AND ...

$isDatTableЯвляется ли режим выборки данных штатным (необязательный аргумент)

Устанавливайте значение true, если нужно извлечь данные из таблицы данных шаблона (таблицы с префиксом tab_). При этом в качестве ключей массива будут использоваться номера полей: rec, 1, 2, .... В противном случае будут использоваться имена столбцов: recId, dat1, dat2, ...

Следите за тем, чтобы в pick и search запросах (запросы условной и поисковой выборки) поля обозначались соответствующим образом, то есть, номерами в режиме $isDatTable=true и именами столбцов в противном случае.

$tddМассив дескриптора (необязательный аргумент)
$dataBlockIdНомер блока с данными (необязательный аргумент).
Нужно использовать только для данных типа select, если этот аргумент опустить, он будет вычислен автоматически.

Пример извлечения адреса электронной почты из таблицы users для пользователя с идентификатором $userId

$table = getTable
(
    $GLOBALS['prefix'].'users',
    'writeMessage'.$block,
    $limit2,
    $backward2,
    '',
    'userId',
    "AND userId=$userId"
);
$email = $table[0]['email'];

Эта функция удобна, когда нужно извлекать данные с учетом всех URL-запросов (sort, pick, limit, part, backward, search, singleRec). Внимание! Чтобы выборка производилась с учетом URL-запросов, перед вызовом функции getTable необходимо вызвать функцию saveRequest.

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