張華南
摘要:針對(duì)目前廣告企業(yè)管理網(wǎng)絡(luò)廣告的迫切需求,該文采用PHP編程語言和MySQL數(shù)據(jù)庫技術(shù),開發(fā)一款有效管理網(wǎng)絡(luò)廣告的系統(tǒng),實(shí)現(xiàn)網(wǎng)絡(luò)廣告的發(fā)布、修改、刪除、查看等功能,滿足中小廣告企業(yè)管理網(wǎng)絡(luò)廣告的需求。
關(guān)鍵詞:MySQL數(shù)據(jù)庫;PHP;廣告系統(tǒng)
中圖分類號(hào) TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)05-0104-05
Design and Implementation of Network Advertisement System Based on PHP Technology
ZHANG Hua-nan
(Guangdong Peizheng College Department of Science and engineering, Guangzhou 510830 ,china )
Abstract: The urgent needs of enterprise management aiming at advertising online advertising, using the PHP programming language and MySQL database technology, has developed an effective management system for online advertising. Achieve the release of online advertising, modify, delete, view, and other features. the needs of small advertising business in online advertising management.
Key words: MySQL database;PHP;advertising system
廣告發(fā)展從報(bào)紙、雜志、廣播、電視到網(wǎng)絡(luò)廣告,網(wǎng)絡(luò)廣告?zhèn)鞑サ木嚯x超乎想象,網(wǎng)絡(luò)信息覆蓋全球。與傳統(tǒng)媒體廣告相比,網(wǎng)絡(luò)廣告具有精準(zhǔn)、形式豐富、覆蓋范圍廣、不受時(shí)間空間限制等獨(dú)特優(yōu)勢(shì)[1]。
為高效管理網(wǎng)絡(luò)廣告,開發(fā)一款廣告管理系統(tǒng)對(duì)廣告公司來說極其必要且很迫切。下面就開發(fā)環(huán)境和開發(fā)過程進(jìn)行詳細(xì)地闡述和說明。
1 開發(fā)環(huán)境及開發(fā)工具
系統(tǒng)開發(fā)環(huán)境采用 Windows +Apache + MySQL + PHP( WAMP) 的配置方案,結(jié)合Dreamweaver cs6設(shè)計(jì)工具實(shí)現(xiàn)本廣告系統(tǒng)的開發(fā)與實(shí)現(xiàn)。
PHP(Hypertext Preprocessor的縮寫,中文名:“超文本預(yù)處理器”)是一種通用開源腳本語言[2],具有執(zhí)行效率高、安全穩(wěn)定、免費(fèi)開源、跨平臺(tái)等特性得到廣泛采用[3]。
MySQL是小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),特點(diǎn)是開放源碼、體積小、速度快,廣泛應(yīng)用于中小型網(wǎng)站系統(tǒng)開發(fā)[4]。
2 需求分析
2.1 市場需求
據(jù)CCF研究數(shù)據(jù)顯示:中國主流媒介中,電視廣告和報(bào)紙廣告的收入市場份額從2009年開始出現(xiàn)明顯的下滑態(tài)勢(shì),2011年,網(wǎng)絡(luò)廣告的收入超越報(bào)紙的收入,在2013年,網(wǎng)絡(luò)廣告收入則超越電視廣告收入,網(wǎng)絡(luò)媒體成為第一大廣告收入媒體,在2014年,網(wǎng)絡(luò)廣告的收入份額還將繼續(xù)增長,而電視則在繼續(xù)下降,網(wǎng)絡(luò)廣告的收入份額將繼續(xù)顯著領(lǐng)跑市場[5]。2002-2014年中國個(gè)媒介廣告收入份額曲線圖,如圖1所示。
在如此火爆的網(wǎng)絡(luò)廣告市場中,對(duì)于網(wǎng)絡(luò)廣告公司,迫切需要擁有一個(gè)功能齊全、管理高效的廣告系統(tǒng)。
2.2 功能需求
廣告系統(tǒng)功能需求主要分為三個(gè)部分,分別是廣告管理、廣告效果和用戶管理三大功能模塊。廣告管理實(shí)現(xiàn):廣告添加、修改、刪除、暫停、統(tǒng)計(jì)等功能;廣告效果實(shí)現(xiàn):廣告點(diǎn)擊次數(shù)、點(diǎn)擊率、廣告主、廣告狀態(tài)等;廣告用戶管理實(shí)現(xiàn):用戶注冊(cè)、登錄、注銷等功能。
3 系統(tǒng)各功能模塊
3.1 功能模塊
1) 廣告管理模塊
廣告管理是系統(tǒng)核心部分,主要實(shí)現(xiàn)廣告添加、廣告修改、廣告刪除、廣告暫停、廣告統(tǒng)計(jì)等功能。如圖2所示。
其中廣告添加子模塊功能如圖3所示。包含有:
廣告鏈接:通過鏈接可以鏈接到用戶網(wǎng)站;
圖片鏈接:顯示廣告的自定義圖片;
廣告位置:選擇廣告展示的位置;
開始時(shí)間:廣告開始展示的時(shí)間;
結(jié)束時(shí)間:廣告結(jié)束展示的時(shí)間。
2)廣告效果統(tǒng)計(jì)功能模塊
點(diǎn)擊次數(shù):顯示廣告被點(diǎn)擊次數(shù);
顯示次數(shù):顯示廣告顯示次數(shù);
有效時(shí)間:顯示廣告開始日期和失效截止期;
廣告用戶:顯示廣告屬于哪個(gè)廣告商會(huì)員用戶;
廣告狀態(tài):顯示廣告顯示中、已過期、暫停等狀態(tài)。如下圖4所示。
3)用戶管理模塊
用戶注冊(cè):廣告主注冊(cè)成會(huì)員,以便申請(qǐng)廣告位;
用戶登錄:用戶登錄個(gè)人管理后臺(tái)管理個(gè)人信息和申請(qǐng)廣告信息。如圖5所示。
3.2 系統(tǒng)總體流程設(shè)計(jì)圖
根據(jù)整個(gè)系統(tǒng)設(shè)計(jì)圖獲取清晰的流程設(shè)計(jì)步驟,以模塊設(shè)計(jì)的方式完成整個(gè)系統(tǒng)的功能。成功通過用戶名和密碼驗(yàn)證后進(jìn)入系統(tǒng),系統(tǒng)主要分三個(gè)模塊,包括:廣告管理、廣告統(tǒng)計(jì)、用戶管理三部分。用戶管理模塊,由刪除用戶、我的賬號(hào)兩部分組成;廣告管理由五個(gè)部分組成:廣告暫停、廣告統(tǒng)計(jì)、廣告刪除、廣告修改、廣告添加;在廣告添加模塊中,又由以下幾個(gè)子部分組成:廣告鏈接、廣告類型、廣告位置、開始時(shí)間、結(jié)束時(shí)間;廣告效果模塊,由以下五個(gè)部分組成:有廣告用戶、廣告狀態(tài)、點(diǎn)擊次數(shù)、點(diǎn)擊率、有效時(shí)間。系統(tǒng)總體流程設(shè)計(jì)圖如圖6所示。
3.3 系統(tǒng)E-R圖設(shè)計(jì)
實(shí)體關(guān)系圖( Entity Relationship Diagram,E-R圖) 提供了表示實(shí)體類型屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型 E-R 模型在數(shù)據(jù)庫設(shè)計(jì)領(lǐng)域得到了廣泛的認(rèn)同,大部分?jǐn)?shù)據(jù)庫設(shè)計(jì)產(chǎn)品使用實(shí)體-聯(lián)系模型( E-R模型) 幫助用戶進(jìn)行數(shù)據(jù)庫設(shè)計(jì)[5]。
本系統(tǒng)中的實(shí)體有:用戶和管理員、廣告項(xiàng)目、廣告信息。用戶添加廣告,是1:N的關(guān)系,成功添加多個(gè)廣告后,可以用系統(tǒng)返回廣告唯一ID,查詢已添加的廣告信息,獲取查詢結(jié)果,可以對(duì)廣告進(jìn)行刪除、暫停、恢復(fù)等操作。
1)用戶廣告E-R關(guān)系圖
如圖7所示。
2)管理員管理項(xiàng)目E-R圖
如圖8所示。
3)廣告實(shí)體E-R圖
如圖9所示。
4 設(shè)計(jì)與實(shí)現(xiàn)
4.1 數(shù)據(jù)庫設(shè)計(jì)
1)數(shù)據(jù)庫的創(chuàng)建
本廣告系統(tǒng)使用MySQL數(shù)據(jù)庫。使用SQL語言對(duì)MySQL數(shù)據(jù)庫進(jìn)行操作。先建立一個(gè)數(shù)據(jù)庫,再建立一個(gè)數(shù)據(jù)庫表結(jié)構(gòu)。本系統(tǒng)創(chuàng)建了數(shù)據(jù)庫binary_data。
2)系統(tǒng)數(shù)據(jù)庫表的設(shè)計(jì)
本系統(tǒng)總共4個(gè)數(shù)據(jù)庫表:會(huì)員用戶信息表、管理員用戶信息表、廣告信息表、廣告申請(qǐng)表。
下面介紹各個(gè)表的結(jié)構(gòu)以及表中包含的字段:
管理員用戶信息表,表中字段包括管理員的編號(hào)、密碼和賬號(hào),如表1所示。
4.2 數(shù)據(jù)庫連接方式設(shè)計(jì)
在PHP中實(shí)現(xiàn)對(duì)數(shù)據(jù)庫動(dòng)態(tài)連接,PHP 提供了php_mysql 擴(kuò)展來實(shí)現(xiàn)與MySQL 數(shù)據(jù)庫的操作,從而能夠?qū)ο到y(tǒng)的數(shù)據(jù)庫進(jìn)行連接、查詢等操作[6]。
1)數(shù)據(jù)庫的創(chuàng)建
使用phpmyadmin管理工具,可以簡單、方便、快捷地建立數(shù)據(jù)庫及數(shù)據(jù)庫表。
2)連接數(shù)據(jù)庫
數(shù)據(jù)庫創(chuàng)建成功后,就可以和數(shù)據(jù)庫建立連接關(guān)系。php_mysql擴(kuò)展提供mysql_connect方法,使用該方法建立和管理應(yīng)用程序和MySQL數(shù)據(jù)庫之間的連接。再使用mysql_select_db方法選擇需要操作的數(shù)據(jù)庫。
$MysqlHost = 'localhost';
$MysqlUser = 'root';
$MysqlPass = '';
$MysqlDb ='binary_data';
mysql_connect ($MysqlHost, $MysqlUser, $MysqlPass) or die ('Unable to connect to SQL Server');
mysql_select_db ($MysqlDb) or die ('Unable to connect Database');
3)數(shù)據(jù)庫查詢操作
先定義一個(gè)新的SQL查詢語句,再用mysql_query方法執(zhí)行查詢操作,查詢成功,記錄集將會(huì)被成功返回。這樣用戶就可以獲取數(shù)據(jù)庫表里的所有信息。當(dāng)然,也可以定義刪除、插入、更新等SQL語句,來實(shí)現(xiàn)不同的操作。以下是查詢操作的代碼實(shí)例:
$selectSQL = “SELECT * FROM member_ad_manager”;
$Result1 = mysql_query($selectSQL);
4.3 系統(tǒng)功能實(shí)現(xiàn)
1) 管理員登陸模塊
登錄模塊需要管理員填寫用戶名,用戶密碼,兩者不能為空,否則系統(tǒng)會(huì)檢測(cè)到并提示用戶重新填寫。如果用戶名和密碼兩者有錯(cuò)誤,系統(tǒng)會(huì)提示用戶出現(xiàn)的內(nèi)容,讓用戶再次填寫。只有用戶名和密碼都與系統(tǒng)數(shù)據(jù)庫里的記錄一致,管理員才能成功登錄本廣告系統(tǒng)。
2)廣告添加模塊
廣告添加模塊能讓管理員將廣告信息添加到系統(tǒng)數(shù)據(jù)庫,如:廣告鏈接、圖片鏈接、廣告位置、開始時(shí)間、結(jié)束時(shí)間等。
廣告鏈接
圖片鏈接
廣告位置
用戶通過下拉列表,選擇廣告在網(wǎng)頁上顯示的位置、開始時(shí)間、結(jié)束時(shí)間。
<?php
for($i=2014; $i<=2020; $i++)
//使用for循環(huán)設(shè)置年份顯示范圍。
{
echo "";
}
?>
年
3)廣告效果統(tǒng)計(jì)
使用SQL句可以實(shí)現(xiàn)廣告點(diǎn)擊次數(shù)統(tǒng)計(jì)功能。
$ADsql="select * from images where pic_place="ad_1" order by ad_begin"
$ADsql="Select * from images where pic_鏈接 like '%baidu%' or pic_place like '%ad%' order by ad_end"
這兩個(gè)SQL查詢語句,均已添加搜索條件。"select * from "是表示從表images中查詢并返回條件是pic_place="ad_1"的所有結(jié)果,由ad_begin來決定信息的顯示順序。當(dāng)搜索條件為關(guān)鍵詞時(shí),從表images中查找,條件為pic_鏈接 like '%baidu%' or pic_place like '%ad%',由 ad_end 來決定信息的顯示順序。
4)廣告修改模塊
此模塊可以顯示廣告內(nèi)容,也可以修改廣告內(nèi)容,比如廣告位置、鏈接、開始時(shí)間、結(jié)束時(shí)間等內(nèi)容。代碼如下:
$mysql_query="UPDATE Images SET
pic_address ='$destination',
pic_url = '$pic_link',
pic_place = '$pic_place',
ad_begin = '$ad_begin',
ad_end= '$ad_end',
user_name = '$username'
WHERE ID ='$ID'";
if(mysql_query("$mysql_query")){
echo "
alert('廣告修改成功!');
location.href='admin_ads_update.php?ad_ID='+'".$_POST['ID']."';
";
}else
{echo "
alert('廣告修改失敗!');
location.href='admin_ads_update.php?ad_ID='+'".$_POST['ID']."';
";}}
5)廣告刪除模塊
如要?jiǎng)h除不需要的廣告內(nèi)容,先通過mysql_connect()方法連接數(shù)據(jù)庫,再設(shè)置SQL刪除語句,由mysql_query()方法調(diào)用執(zhí)行,即可實(shí)現(xiàn)此功能,下面是示例代碼:
<?php
$MysqlHost = 'localhost';
$MysqlUser = 'root';
$MysqlPass = '';
mysql_connect ($MysqlHost, $MysqlUser, $MysqlPass);
$ADsql="delete * from images where pic_place="ad_1" ;
mysql_query($ADsql);
?>
$ADsql 是一條SQL刪除語句,當(dāng)將該語句當(dāng)作參數(shù)傳遞給mysql_query()方法后,即可以執(zhí)行刪除操作。以上代碼是:刪除images表中的信息,通過廣告位置pic_place識(shí)別使用where pic_place="ad_1" 。
6)廣告暫停模塊
在某種情況下,出于某種考慮,我們可能需要先暫停某個(gè)廣告,此模塊同樣也是通過簡單SQL語句實(shí)現(xiàn)此功能,可以改變某條廣告的顯示狀態(tài),從而使其暫時(shí)不會(huì)顯示。
$setSQL ="UPDATE images SET status=0 WHERE pic_place="ad_1";
mysql_query($setSQL);
這里設(shè)置在廣告位置pic_place 位 a1_1 上的廣告顯示狀態(tài)status 的值為0,表示“暫停顯示廣告”。同理,恢復(fù)廣告的話,status的值更新為1即可,2表示已經(jīng)過期。
7)廣告效果統(tǒng)計(jì)模塊
通過SQL查詢語句,可以獲取廣告的所有詳細(xì)信息。包括:廣告的點(diǎn)擊次數(shù)、點(diǎn)擊率,開始時(shí)間,結(jié)束時(shí)間等,以下是實(shí)例代碼:
$query_Recordset1 = "SELECT * FROM images";
$Recordset1 = mysql_query($query_Recordset1);
這兩條語句可以查詢并返回廣告內(nèi)容表images里面所有記錄,為一個(gè)記錄集$Recordset1。
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1))
通過while語句,可以循環(huán)迭代每一條廣告信息。
獲得廣告鏈接:$row_Recordset1['pic_鏈接']
獲得廣告商會(huì)員名:$row_Recordset1['user_name']
獲得廣告顯示位置:$row_Recordset1['pic_place']
獲得廣告顯示狀態(tài):$row_Recordset1['status']
獲得廣告開始時(shí)間:$row_Recordset1['ad_begin']
獲得廣告結(jié)束時(shí)間:$row_Recordset1['ad_end']
獲得廣告顯示次數(shù):$row_Recordset1['showtimes']
獲得廣告點(diǎn)擊次數(shù):$row_Recordset1['clicktimes']
5 系統(tǒng)測(cè)試與分析
5.1 測(cè)試目標(biāo)及方法
系統(tǒng)測(cè)試目的是發(fā)現(xiàn)系統(tǒng)存在的錯(cuò)誤并修正。
測(cè)試方法:
白盒法:從系統(tǒng)具體的邏輯結(jié)構(gòu)和執(zhí)行路徑出發(fā),設(shè)計(jì)測(cè)試程序內(nèi)部邏輯,完成系統(tǒng)測(cè)試目的。
黑盒法:把程序當(dāng)作一個(gè)不能打開的黑盒子,不考慮內(nèi)部結(jié)構(gòu)和特性,測(cè)試程序是否能在獲得輸入后返回正確結(jié)果[7]。
5.2 測(cè)試過程
首先,打開登錄頁面,輸入管理員賬戶和密碼,測(cè)試登錄頁面。如圖10所示。
登錄頁面測(cè)試成功,進(jìn)入管理界面,圖11所示。
進(jìn)入管理后臺(tái),可以對(duì)每個(gè)模塊的功能進(jìn)行分步驟測(cè)試,包括添加廣告、廣告顯示狀態(tài)、廣告展示次數(shù)、點(diǎn)擊次數(shù)統(tǒng)計(jì)、廣告暫停、恢復(fù)、刪除、賬號(hào)管理等。
添加廣告功能測(cè)試,在后臺(tái)廣告管理添加廣告,選擇廣告圖片、輸入廣告鏈接、廣告位置、設(shè)置開始時(shí)間和結(jié)束時(shí)間,如圖12所示。
按“提交”添加廣告,系統(tǒng)提示廣告添加成功信息,如圖13所示,測(cè)試成功。
類似測(cè)試方法,廣告點(diǎn)擊次數(shù)統(tǒng)計(jì)、廣告暫停、刪除、恢復(fù)都通過測(cè)試。
5.3 系統(tǒng)測(cè)試分析
通過功能模塊測(cè)試,本系統(tǒng)實(shí)現(xiàn)了網(wǎng)絡(luò)廣告的基本功能。在開發(fā)系統(tǒng)過程中,將各個(gè)功能寫成獨(dú)立模塊,方便系統(tǒng)測(cè)試、維護(hù)和調(diào)試。測(cè)試中,某個(gè)模塊出現(xiàn)錯(cuò)誤,通過設(shè)置斷點(diǎn)測(cè)試,不斷縮小問題發(fā)生的范圍,找到問題所在,重新調(diào)試,找到新的解決方法。通過不斷測(cè)試修正,使得系統(tǒng)變得更加健壯和穩(wěn)定[8]。
6 結(jié)束語
本文詳細(xì)介紹了網(wǎng)絡(luò)廣告系統(tǒng)的設(shè)計(jì)過程,從數(shù)據(jù)庫的設(shè)計(jì)到功能模塊的開發(fā),并對(duì)各功能模塊進(jìn)行了測(cè)試與分析,實(shí)現(xiàn)了廣告系統(tǒng)的基本功能。系統(tǒng)還可以進(jìn)一步開發(fā)與功能擴(kuò)展,以滿足有特定需求的廣告企業(yè)。
參考文獻(xiàn):
[1] 劉博. 廣告銷售預(yù)訂系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京: 北京郵電大學(xué), 2011.
[2] 黃雅萍, 劉曉強(qiáng), 吳成義. 基于MySQL和PHP的分布式事務(wù)處理[J]. 東華大學(xué)學(xué)報(bào):自然科學(xué)版, 2011, 37(1): 81-85.
[3] 楊桂麗, 黎敬濤. 基于php的一個(gè)家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013, 30(2): 259-262.
[4] 金欣, 易琪. 基于PHP和MySQL技術(shù)的網(wǎng)絡(luò)教學(xué)平臺(tái)構(gòu)建[J]. 科技廣場, 2011(2): 43-45.
[5] 2015年中國互聯(lián)網(wǎng)發(fā)展十大趨勢(shì)[EB/OL].http://www.ccf.org.cn/sites/ccf/nry.jsp?contentId=2839621942013.
[6] 陶冶. Winodws下Apache+PHP+MySQL的安裝配置[J]. 科技創(chuàng)新導(dǎo)報(bào), 2010(27): 32.
[7] 張新華, 何永前. 軟件測(cè)試方法概述[J]. 科技視界, 2012(4): 35-37.
[8] 李軍鋒, 欒靜. 探索性軟件測(cè)試解析[J]. 計(jì)算機(jī)與數(shù)字工程, 2011, 39(8): 39-42.