—»     —»   Разработка рекламного трекера на PHP: разработка кода data object
  Раздел: Реклама, Скрипты и коды   Нет комментариев  

Разработка рекламного трекера на PHP: разработка кода data object



В предыдущем уроке мы рассказывали вам о переменных и методах, которые понадобятся нам для взаимодействия с таблицами объявлений в базе данных. Сегодня мы хотим рассказать вам о разработке кода для файла класса data object, а также о других частях сайта, которые будут использовать данные методы.

Разработка рекламного трекера на PHP: разработка кода data object

Для начала, мы разработаем строку информации для соединения с базой данных. Данная информация будет включать в себя имя базы данных, расположение указателя и другую относящуюся к делу информацию. Так как данная информация будет использоваться по всему сайту, она зачастую хранится в отдельном файле. Ввиду этого, мы включили его в метод «require_once».

<?php
require_once("dev_drive_dbconn.php"); //database connection string info

Сейчас мы создадим класс ads и выпишем переменные:

class ads {
var $_id;
var $_oConn;

Теперь создаем функцию ads. Данная функция вызывает переменную $_oConn и соединяет функции с таблицами базы данных.

function ads($id = '') {

// implement pear db object
$this->_oConn =& DB::connect(DSN);

if (DB::isError($this->_oConn) ) {

catchExc($this->_oConn->getMessage());
}

// set ad id
if (is_int($id)) {

$this->setId($id);
}
}

Как только мы установили соединения с базой данных, мы можем выставить значение переменной $_id на функцию setId($id).

function setId($id) {

if (is_int($id)) {

$this->_id = $id;
}
}

Далее мы создаем функцию getAdsCount. Данная функция будет возвращать количество объявлений в таблице базы данных.

function getAdsCount() {

$sql = "SELECT
count(ad_id) AS cnt
FROM
dev_drive_ads
WHERE
deleted=0";

if (DB::isError($iCnt = $this->_oConn->getOne($sql))) {

catchExc($iCnt->getMessage());
return false;
}

return $iCnt;
}

Функция getClientsCount будет возвращать количество клиентов.

function getClientsCount() {

$sql = "SELECT
count(ad_client_id) AS cnt
FROM
devdrive_ads_clients
WHERE
deleted=0";

if (DB::isError($iCnt = $this->_oConn->getOne($sql))) {

catchExc($iCnt->getMessage());
return false;
}

return $iCnt;
}

Функция getAds будет извлекать данные из таблицы ads, сортировать их в соответствии со значением переменной $sSort, и выставлять указатель базы данных на переменную $iPage.

function getAds($sSort, $iPage=0) {

$sql = "SELECT
ad_id,
ad_title,
status,
created_dt,
modified_dt
FROM
devdrive_ads
WHERE
deleted=0
ORDER BY
".$sSort."
LIMIT ".$iPage.", ".ROWCOUNT;

if (DB::isError($rsTmp = $this->_oConn->query($sql))) {

catchExc($rsTmp->getMessage());
return false;
}

// loop through result and return data collection
$i = 0;
while ($aRow = $rsTmp->fetchRow(DB_FETCHMODE_ASSOC)) {

$return[$i]["Ad Id"] = $aRow["ad_id"];
$return[$i]["Title"] = $aRow["ad_title"];
$return[$i]["Status"] = $aRow["status"];
$return[$i]["Created Date"] = strtotime($aRow["created_dt"]);
$return[$i]["Modified Date"] = strtotime($aRow["modified_dt"]);
++$i;
}
return $return;
}

Функция getClients извлекает данные из таблицы clients, соритрует их в соответствии со значением переменной $sSort, и выставляет указатель базы данных на переменную $iPage.

function getClients($sSort, $iPage=0) {

$sql = "SELECT
ad_client_id,
ad_client_name,
status,
created_dt,
modified_dt
FROM
devdrive_ads_clients
WHERE
deleted=0
ORDER BY
".$sSort."
LIMIT ".$iPage.", ".ROWCOUNT;

if (DB::isError($rsTmp = $this->_oConn->query($sql))) {

catchExc($rsTmp->getMessage());
return false;
}

// loop through result and return data collection
$i = 0;
while ($aRow = $rsTmp->fetchRow(DB_FETCHMODE_ASSOC)) {

$return[$i]["Client Id"] = $aRow["ad_client_id"];
$return[$i]["Client"] = $aRow["ad_client_name"];
$return[$i]["Status"] = $aRow["status"];
$return[$i]["Created Date"] = strtotime($aRow["created_dt"]);
$return[$i]["Modified Date"] = strtotime($aRow["modified_dt"]);
++$i;
}
return $return;
}

Функция getAd извлекает данные об отдельном объявлении по его первичному ключу (переменной $_id).

function getAd() {

// get advertisement record
$sql = "SELECT
a.ad_id,
a.ad_client_id,
a.ad_url,
a.ad_title,
a.ad_path,
c.ad_client_name,
c.ad_client_contact,
c.ad_client_email,
c.ad_client_phone,
a.status,
a.deleted,
a.deleted_dt,
a.created_dt,
a.modified_dt
FROM
devdrive_ads a,
devdrive_ads_clients c
WHERE
c.ad_client_id=a.ad_client_id
AND a.ad_id=".$this->_id;

if (DB::isError($rsTmp = $this->_oConn->query($sql))) {

catchExc($rsTmp->getMessage());
return false;
}

// capture results row in an array
$aRow = $rsTmp->fetchRow(DB_FETCHMODE_ASSOC);

// build return array
$return["Ad Id"] = $aRow["ad_id"];
$return["Client Id"] = $aRow["ad_client_id"];
$return["URL"] = $aRow["ad_url"];
$return["Title"] = $aRow["ad_title"];
$return["Path"] = $aRow["ad_path"];
$return["Client"]["Name"] = $aRow["ad_client_name"];
$return["Client"]["Contact"] = $aRow["ad_client_contact"];
$return["Client"]["Email"] = $aRow["ad_client_email"];
$return["Client"]["Phone"] = $aRow["ad_client_phone"];
$return["Status"] = $aRow["status"];
$return["Deleted"] = $aRow["deleted"];
$return["Deleted Date"] = strtotime($aRow["deleted_dt"]);
$return["Created Date"] = strtotime($aRow["created_dt"]);
$return["Modified Date"] = strtotime($aRow["modified_dt"]);
return $return;
}

Функция getClient извлекает данные об отдельном клиенте из таблицы clients по его первичному ключу.

function getClient() {

// get advertisement record
$sql = "SELECT
ad_client_name,
ad_client_contact,
ad_client_email,
ad_client_phone,
status,
deleted,
deleted_dt,
created_dt,
modified_dt
FROM
devdrive_ads_clients
WHERE
ad_client_id=".$this->_id;

if (DB::isError($rsTmp = $this->_oConn->query($sql))) {

catchExc($rsTmp->getMessage());
return false;
}

// capture results row in an array
$aRow = $rsTmp->fetchRow(DB_FETCHMODE_ASSOC);

// build return array
$return["Name"] = $aRow["ad_client_name"];
$return["Contact"] = $aRow["ad_client_contact"];
$return["Email"] = $aRow["ad_client_email"];
$return["Phone"] = $aRow["ad_client_phone"];
$return["Status"] = $aRow["status"];
$return["Deleted"] = $aRow["deleted"];
$return["Deleted Date"] = strtotime($aRow["deleted_dt"]);
$return["Created Date"] = strtotime($aRow["created_dt"]);
$return["Modified Date"] = strtotime($aRow["modified_dt"]);
return $return;
}

В следующем уроке мы расскажем вам о функциях, которые будут составлять список клиентов, генерировать отчеты и позволят нам добавлять, редактировать и удалять записи.
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: PHP, реклама, MySQL
Опубликовал Design FactoRy   Прочитано (раз): 6497   |   Нет комментариев
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Национальная денежная единица США
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Замена батареи на айфон 6
замена батареи на айфон 6
i-repair.ru
Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Сентябрь 2017    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930