Разработчикам   / шаблоны сайтов / создание сайтов / форум / партнерство
Авторизация Закрыть [x]  
     
   
Запомнить / Напомнить
SiteEdit

Найти:


Карта сайта

Сайт разработчиков SiteEdit

Классы для работы с базой

Категории:

function from($nametable, $table_alias) - метод выбора таблицы

Входные параметры:

  • $name_table - имя  таблицы
  • $table_alias - алиас таблицы

Пример:

$table->from('se_company', 'sc');

function find($id) - получить строку базы данных по ID

Например:

$person = new sePerson();
$person->select('firstname, lastname, secname')->find($id);
$name = $person->first_name.' '.$person->last_name.' '.$person->sec_name;

Выходные параметры: Именованный массив (аналогично методу fetchOne())

function fetchOne() - выполнить запрос и вывести строку таблицы в именованный массив

Выходные параметры: Именованный массив

Например:

$q = new seTable('se_user', 'u');
$q->select('u.id, p.first_name, p.last_name, p.sec_name')
->leftJoin('person p', 'u.id=p.id')
->addWhere('u.usurname=?', $username)
->andWhere('u.password=?', $password);
list($user_id, $firstname, $lastname, $secname) = $q->fetchOne();

При работе с одной таблицей и без использования метода select() метод feachOne() кроме возвращения данных устанавливает внутренний счетчик ID на текущую запись и позволяет в дальнейщем изменить поля строки и сохранить их методом save().

$q = new seTable('se_user');
$q->addWhere('s.username=?', $username)
->andWhere('s.password=?', $password);
$q->fetchOne();
$user_id = $q->id;
$q->last_login = date('Y-m-d H:i:s', time());
$q->save();

function save() - сохранить или добавить значения в базу данных

Например:
Для примера выберем наследуемый класс seUser() (таблица пользователей se_user)
Находим строку в таблице по ID, изменяем значения полей и сохраняем.

$person = new seTable('person');
$person->find($id);
$person->first_name = 'Иванов';
$person->last_name = 'Иван';
$person->sec_name = 'Иванович';
$person->save();

Для добавления новой записи метод find() нужно исключить

Метод возвращает ID добавленной или сохраненной строки.

function update($field, $value) и function addupdate($field, $value)

Метод присваивает полям таблицы новые значения.

$field - поле таблицы
$value - новое значение. (в виде значений могут быть использованы значения тех-же полей). Для размещения текстовых значений требуется заковычивать текст (в одинарные ковычки).

Например:

$table = new seTable('tablename');
$table->update('field_id', "field_id+1"); // Прибавим "1" к значению поля "field_id"
$table->addupdate('field_text', "'мой текст'"); // Изменим в поле "field_text" текст "мой текст"
$table->where("field_id='?'", 1); // Найдем  запись с номером "1"  в поле "field_id"
$table->save(); // Сохраним запись

function insert($fields)

Метод перстраивает класс таблицы на добавление записи
Параметр $field - строка с именами полей разделенные запятой

function delete($id = 0) - удалить текущую или выбранную запись в таблице

Входной параметр:

  • $id - может принимать 2 состояния (массив или число). В случае с массивом, метод будет удалять из таблицы все строки ID, которые содержаться в массиве. Если параметр ID (число) - метод удалит строку с указанным значением. В случае, если параметр не задавать или установить значение = 0, то метод удалит текущую запись выбранную методом find();

function deletelist() - удалить все выбранные методами WHERE записи

Функция является исполняемой
$table = new seTable('mytable');
$table->where('id > 20')->deletelist();

functigon getRow() - получить строку базы данных

Выходной параметр: именованный массив данных выбранный методом find();

function addField($namefield, $type='string') - добавление нового поля в таблицу

Функция создает новое поле в таблице (если оно не сущесвовало), а также включает это поле в список валидации.
function addField($namefield, $type='string')

$namefield - имя поля в таблице
$type - тип поля (string(20), integer, float, enum, ....)

Внимание! Для специализированных классов таблиц (таких как seUser, sePerson и т.п.) данный метод необходимо применять при каждом объявлении класса.

Например:

$person = new sePerson();
$person ->addField('avatar','string(40)'); // Добавляем поле "Аватар"
$person ->find($user_id);
$person ->avatar = '/wwwdata/dev/images/avatar.png';
$person ->save();

function findlist($findtext = '') - выбрать список строк из базы данных

$findtext - (id или запрос SQL)

function getListCount() - получить число строк в таблице удовлетворящее запросу findlist() или where()

$count = $table->getListCount(); // получить число строк в таблице удовлетворящее запросу findlist() или where()

function getList($offset = 0, $limit = 0) - получить список строк

Входные параметры:

  • $offset - стартовая строка (начиная с 0)
  • $limit - выводить число строк

Выходные параметры: Массив строк (строка - именованный массив)

function select($select = '') - выбор определенных полей таблицы

$table = new seTable();
$table->from('my_table')
->select('id, parent_id, name, created_at as date')
->findlist('parent_id IS NULL')
$list = $table->getList();
foreach($list as $row){
    echo $row['id'] . ' ' . $row['name'] . ' ' . $row['date'];
}

function leftjoin($table, $withselect = '') - присоединение другой таблицы слева

Присоединение таблицы слева: leftjoin(ИМЯ присоединяемой таблицы, ПОЛЕ для связывания таблиц)

Напимер:

$table = new seTable('se_company', 'sc');
$table->select('sc.*, se_town.name as town, sc.name as status')
->leftjoin('se_company_status','sc.status_id')
->where('sc.is_show=true')
->orderby('sc.status_id',1);
$list = $table->getList();

function innerjoin($table, $withselect = '') - объединение c другой таблицой

$table = new seTable('se_company', 'sc');
$table->select('sc.*, ss.name as status')
         ->innerjoin('se_company_status ss','sc.status_id')->where('sc.is_show=true');
$list = $table->getList();

function rightjoin($table, $withselect = '') -присоединение другой таблицы справа

$table = new seTable('se_company', 'sc');
$table->select('sc.*, ss.name as status')
->rightjoin('se_company_status ss','sc.status_id')
->where('sc.is_show=true')
->orderby('sc.status_id',1);
$list = $table->getList();

function where($where, $value) - метод начального запроса (аналогичен методу findList())

$table->where("name='?'", $name); // метод начального запроса (аналогичен методу findList())

function addWhere($where, $value) - новый SQL запрос

Форматированный метод добавления запроса (аналогичен методу where())

Например:

$table->addWhere('section_id=?', $id )

function andWhere($where, $value) - добавление запроса с ключем AND

Например:

$table->andWhere('section_id=?', $id )

function orWhere($where, $value) - добавление SQL запроса с ключем OR

Например:

$table->orWhere('section_id=?', $id )

function groupby($groupby = 'id') - метод группировки полей

$table->groupby('id'); //- метод группировки полей

function orderby($orderby = 'id', $sort = 0) - метод сортировки строк

Входные параметры:

  • $orderby - поле или список (через запятую) сортировка
  • $sotr - метод сортировка (0 - на увеличение, 1 - на уменьшение)

function pageNavigator($limit = 30) - метод страничного навигатора

Метод размещается в конструкции схемы формирования запроса перед методом getList().
Выходным параметром метода является сформированный HTML код переключателя страниц.

Например:

$news = new seNews();
$news->select('id,created_at,title,shorttext')->findlist();
$navigator = $news->pageNavigator(10);
$this->objects = $news->getlist();

Переменная $navigator далее может быть объявлена в HTML шаблоне модуля перед выводом списка

<div class="navigator">{$navigator}</div>
{OBJECT}
..... // Шаблон записей

{/OBJECT}

 
Copyright © Edgestile Company, 2004-09
тел.:  8 (495) 229-45-50, 8 (812) 777-01-30, 8 (34241) 3-69-90
e-mail:  info@siteedit.ru - общие вопросы
icq: 268-447-867 - общие вопросы
все контакты