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

Разработка рекламного трекера на PHP: отчеты и записи



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

Разработка рекламного трекера на PHP: отчеты и записи

Функция getClientsList() выдает нам записи об активных клиентах и сортирует их в алфавитном порядке по имени:

function getClientsList() {

// get clients from db
$sql = "SELECT
ad_client_id,
ad_client_name
FROM
devdrive_ads_clients
WHERE
deleted=0
and status=1
ORDER BY
ad_client_name";

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

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

// loop through results and build return array
$i = 0;
while ($aRow = $rsTmp->fetchRow(DB_FETCHMODE_ASSOC)) {

$return[$i]["Client Id"] = $aRow["ad_client_id"];
$return[$i]["Client"] = $aRow["ad_client_name"];
++$i;
}
return $return;
}

Функция getAdsReport() выдает нам данные для отображения отчета активности определенной баннерной рекламной кампании, включая данные о баннере, клиенте и данные об активности.

function getAdsReport() {

// get report data
$sql = "SELECT
a.ad_title,
a.ad_url,
a.created_dt,
c.ad_client_name,
c.ad_client_contact,
c.ad_client_email,
c.ad_client_phone,
r.ad_view_cnt,
r.ad_click_cnt,
r.ad_activity_month,
r.ad_activity_year
FROM
devdrive_ads a,
devdrive_ads_clients c,
devdrive_ads_activity r
WHERE
a.ad_client_id=c.ad_client_id
AND r.ad_id=a.ad_id
AND a.deleted=0
ORDER BY
r.ad_activity_year desc,
r.ad_activity_month desc";

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

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

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

$return[$i]["Title"] = $aRow["ad_title"];
$return[$i]["URL"] = $aRow["ad_url"];
$return[$i]["Client"]["Name"] = $aRow["ad_client_name"];
$return[$i]["Client"]["Contact"] = $aRow["ad_client_contact"];
$return[$i]["Client"]["Email"] = $aRow["ad_client_email"];
$return[$i]["Client"]["Phone"] = $aRow["ad_client_phone"];
$return[$i]["View Count"] = $aRow["ad_view_cnt"];
$return[$i]["Click Count"] = $aRow["ad_click_cnt"];
$return[$i]["Month"] = $aRow["ad_activity_month"];
$return[$i]["Year"] = $aRow["ad_activity_year"];
$return[$i]["Created Date"] = strtotime($aRow["created_dt"]);
++$i;
}
return $return;
}

Метод addAd($aArgs) вносит новую запись в таблицу devdrive_ads. Параметры данной функции включают в себя ID клиента, URL баннерного объявления, заголовок баннерной рекламной кампании, а также путь, по которому должен проследовать браузер при клике по рекламному объявлению.

function addAd($aArgs) {

// if no client id was passed
if (empty($aArgs["Client Id"])) {

$aArgs["Client Id"] = $this->addClient($aArgs);
}

// insert new advertisement record
$sql = "INSERT INTO devdrive_ads (
ad_client_id,
ad_url,
ad_title,
ad_path,
status,
created_dt,
modified_dt
) values (
".$aArgs["Client Id"].",
'".$aArgs["URL"]."',
'".$aArgs["Title"]."',
'".$aArgs["Path"]."',
1,
(NOW()),
(NOW())
)";

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

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

return true;
}

Функция addClient($aArgs) вносит новую запись в таблицу devdrive_ads_clients. Параметры включают в себя деловое имя клиента, контактное лицо, номер телефона и адрес электронной почты. Если функция возвращает положительное значение, то далее из основного ключа для новой записи генерируется значение $iClientID.

function addClient($aArgs) {

// lock tables to capture unique identifier
$sql = "LOCK TABLES devdrive_ads_clients WRITE";

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

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

// insert new client record
$sql = "INSERT INTO devdrive_ads_clients (
ad_client_name,
ad_client_contact,
ad_client_email,
ad_client_phone
) values (
'".$aArgs["Client"]["Name"]."',
'".$aArgs["Client"]["Contact"]."',
'".$aArgs["Client"]["Email"]."',
'".$aArgs["Client"]["Phone"]."'
)";

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

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

// get unique client id
$sql = "SELECT MAX(ad_client_id) FROM devdrive_ads_clients";

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

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

// unlock tables
$sql = "UNLOCK TABLES";

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

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

return $iClientId;
}

Функция editAd($aArgs) позволяет администратору обновлять запись в таблице devdrive_ads. Параметры включают ID клиента, URL баннерного объявления, заголовок баннерной рекламной кампании, а также путь, по которому должен проследовать браузер при клике по рекламному объявлению.

function editAd($aArgs) {

// initialize sql filter
$sFilter = "";

// if a file was uploaded, ad path value to sql filter
if (!empty($aArgs["Path"])) $sFilter = "ad_path='".$aArgs["Path"]."', ";

// update advertisement record
$sql = "UPDATE devdrive_ads SET
ad_client_id=".$aArgs["Client Id"].",
ad_url='".$aArgs["URL"]."',
ad_title='".$aArgs["Title"]."',
".$sFilter."
modified_dt=(NOW())
WHERE
ad_id=".$this->_id;

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

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

return true;
}

editClient($aArgs) позволяет пользователю обновлять запись в таблице devdrive_ads_clients. Параметры включают в себя деловое имя клиента, контактное лицо, номер телефона и адрес электронной почты.

function editClient($aArgs) {

// update client record
$sql = "UPDATE devdrive_ads_clients SET
ad_client_name='".$aArgs["Client"]["Name"]."',
ad_client_contact='".$aArgs["Client"]["Contact"]."',
ad_client_email='".$aArgs["Client"]["Email"]."',
ad_client_phone='".$aArgs["Client"]["Phone"]."',
modified_dt=(NOW())
WHERE
ad_client_id=".$this->_id;

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

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

return true;
}

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

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

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

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


Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Ноябрь 2017    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
27282930