Работа с базой данных

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Зачастую требуется какая-либо манипуляция с данными в базе, при написании сниппета или плагина. Привожу сборник примеров, для работы с базой данных, которые использовал в рабочих проектах.

В MODx Evolution

Выборка данных из таблицы (SQL SELECT)


$all_zakaz_id = 100;
$f = $modx->getFullTableName('web_groups').' gr JOIN '.$modx->getFullTableName('webgroup_names').' grn on gr.webgroup = grn.id ';
$f .= 'JOIN '.$modx->getFullTableName('web_users').' usr on usr.id = gr.webuser';

// отправка запроса

$q = $modx->db->select('usr.username ,grn.*', $f, 'gr.webuser = '.$id);

// получить ответ в массиве
$q = $modx->db->makeArray($q);

Вставка данных в таблицу (SQL INSERT)


$fields = array('type' => 'document',
'contentType' => 'text/html',
'pagetitle' => $username,
'alias' => $username,
'template' => 16
'parent' => 100,
'published' => 1,
'hidemenu' => 1,
'isfolder' => 1
);

// вставка
$table_name = $modx->getFullTableName( 'site_content' ); 
$modx->db->insert( $fields, $table_name);

// получить id записа, после вставки
$dir_user = $modx->db->getInsertId();

Пример отправки запросов в базу (SQL SELECT, INSERT, UPDATE, DELETE)


// $modx - глобальная переменная

$doc_id = 1; // номер ресурса

$table = $modx->getFullTableName( 'site_tmplvar_contentvalues' ); // получить полное имя таблицы

// отправка запроса в базу

$modx->db->query("insert into ".$table." (tmplvarid,contentid,value)VALUES(12,".$doc_id.",'свойство')");

Обновление таблицы (SQL UPDATE)


$doc_id = 1; // номер ресурса
$fields = array('value' => $_POST['work_step']);

$table = $modx->getFullTableName( 'site_tmplvar_contentvalues' );
$result = $modx->db->update( $fields, $table, 'contentid = "' . $doc_id . '" and tmplvarid =12' );

Получить дочерние ресурсы


$modx->getDocumentChildren(12,1,0,'pagetitle, longtitle, id, description');

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *