Система бронирования мест в отелях города
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
on GetAllFields () {($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};($this->database_fields);
}
// Функция возвращает ассоциативный массив полей, которые были изменены
public function GetModifiedFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
$escVals = array (); // Выходной массив значений($this->database_fields as $key => $value) {(! is_numeric ($key)) {(isset ($this->modified_fields [$key]))($this->modified_fields [$key] == true) { // Если поле было изменено
$escVals [$key] = $value;
};
};
};($escVals);
}
// Функция возвращает id текущего элементаfunction GetID () {
return $this->id;
}
// Функция инициализации
// задает имя таблицы,
// id
// и id (но не обязательно)
public function Initialize ($table_name, $tuple_id_name, $tuple_id = "") {
$this->table_name = $table_name;
$this->id_name = $tuple_id_name;
$this->id = $tuple_id;
}
// функция Задает значение $value в поле $field
public function SetField ($field, $value) {
if ($this->loaded == 0) { // Если данные еще не были загружены,($this->id) { // и у нас есть конкретный id
$this->Load (); // то мы их загружаем
};
};
$this->database_fields [$field] = $value; // Записываем значение
$this->modified = 1; // Устанавливаем флаг того, что мы вносили изменения
$this->modified_fields [$field] = true; // Устанавливаем флаг того, что поле было изменено
}
// Функция удаления объектаfunction Destroy () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы($id) { // Если id задан
$this->objDB->delete ($table_name, array ($id_name => $id)); // Удаляем элемент из таблицы
// $sql = new sql (0);
// $stmt = "DELETE FROM \"". $table_name. "\" WHERE id=". $id. "";
// $sql->query ($stmt);
};
}
// Функция сохранения в БД
public function Save () {
$id = $this->id; // Запоминаем id
$id_name = $this->id_name; // Запоминаем id_name
$table_name = $this->table_name; // Запоминаем имя таблицы
// $sql = new sql (0);
if (! $id) { // Если id не задан
$this->loaded = 0; // То устанавливаем, что элемент не был загружен
};($this->loaded == 0) { // Если элемент новый (не был загружен)
// Добавляем новую запись в таблицу БД
$this->objDB->insert ($table_name, $this->database_fields);
} else { // Если это не новый элемен
$return_code = $this->objDB->update ($table_name, $this->GetModifiedFields (), array ($id_name => $id));
};
// $return_code = $sql->query ($stmt, 1);
if ($this->loaded == 0) { // Если мы вставляли новый элемент
// Получаем последний вставленный id
$stmt = "SELECT MAX (". $this->id_name. ") AS id FROM $table_name WHERE ";($this->database_fields as $key => $value) {(! is_numeric ($key)) {($value) {($this->modified_fields [$key] == true) {
$value = str_replace ("", "\", $value);
$stmt. = "$key = $value AND ";
};
};
};
};
$stmt = substr ($stmt,0,strlen ($stmt) - 5); // Убираем лишние символы
$arResult = $this->objDB->select ($stmt); // Выполняем запрос
$proposed_id = $arResult [0] ["id"]; // Переписываем полученный id($proposed_id > 0) { // Если получили нормальный id
$this->loaded = 1; // значит все загружено
$this->id = $proposed_id; // Запоминаем id в объект
return true;
} else {false;
};
};($return_code);
}
};
class. GenericObjectCollection. php
<?
// Класс "Объект" - предназначен для сокращения кода его наследников
class GenericObject {
// Члены класса
protected $objDB; // Класс БД
private $id; // id элемента
private $id_name; // Обозначение id элемента$table_name; // Имя таблицы$database_fields; // Ассоциативный массив с ключами, которые являются именами столбцов таблицы и их значениями для данной строки$loaded; // Ноль, если данные не были загружены из таблицы - один, если данные были загружены$modified; // флаг того, что изменения вносились$modified_fields; // Аналогичен database_fields, но содержит 0 или 1 в зависимости от того были ли произведены изменения
// методы
// Функция перезагрузки
// Загружает всю информацию об элементе
public function Reload () {
// $sql = new sql (0);
$id = $this->id; // Запоминаем id
$table_name = $this->table_name; // запоминаем имя таблицы
// $sql->query ("SELECT * FROM \"$table_name\" WHERE id=$id"); // формируем запрос
$stmt = "SELECT * FROM $table_name WHERE". $this->id_name. "=$id"; // формируем запрос
$arResult = $this->objDB->select ($stmt); // Выполняем запрос(isset ($arResult [0])) {
$result_fields = $arResult [0]; // Копируем первую строку
$this->database_fields = $result_fields; // Переписываем полученный результат в нащ объект
$this->loaded = 1; // Устанавливаем статус загрузки(sizeof ($this->modified_fields) > 0) { // Если есть массив с изменениями
foreach ($this->modified_fields as $key => $value) { // То обнуляем все его элементы
$this->modified_fields [$key] = false;
};
};
}
}
// Функция зарузки
// Загружает всю информацию об элементе
private function Load () {
$this->Reload ();
// $this->loaded = 1;
}
// Функция принудительной загрузкиfunction ForceLoaded () {
$this->loaded = 1;
}
// Функция возвращает значение поля
// Ей передается имя поляfunction GetField ($field) {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};(isset ($this->database_fields [$field]))$this->database_fields [$field];
else return false;
}
// Функция возвращает весь массив значений элементаfunction GetAllFields () {($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};($this->database_fields);
}
// Функция возвращает ассоциативный массив полей, которые были изменены
public function GetModifiedFields () {
if ($this->loaded == 0) { // Если данные еще не были загружены,
$this->Load (); // то мы их загружаем
};
$escVals = array (); // Выходной массив значений($this->database_fields as $key => $value) {(! is_numeric ($key)) {(isset ($this->modified_fields [$key]))($this->modified_fields [$key] == true) { // Если поле было изменено
$escVals [$key] = $value;
};
};
};($escVals);
}
// Функция возвращает id текущего элементаfunction GetID () {
return $this->id;
}
// Функция инициализации
// задает имя таблицы,
// id
// и id (но не обязательно)
public function Initialize ($table_name, $tuple_id_name, $tuple_id = "") {
$this->table_name = $table_name;