张华南
摘要:针对目前广告企业管理网络广告的迫切需求,该文采用PHP编程语言和MySQL数据库技术,开发一款有效管理网络广告的系统,实现网络广告的发布、修改、删除、查看等功能,满足中小广告企业管理网络广告的需求。
关键词:MySQL数据库;PHP;广告系统
中图分类号 TP311 文献标识码:A 文章编号: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
广告发展从报纸、杂志、广播、电视到网络广告,网络广告传播的距离超乎想象,网络信息覆盖全球。与传统媒体广告相比,网络广告具有精准、形式丰富、覆盖范围广、不受时间空间限制等独特优势[1]。
为高效管理网络广告,开发一款广告管理系统对广告公司来说极其必要且很迫切。下面就开发环境和开发过程进行详细地阐述和说明。
1 开发环境及开发工具
系统开发环境采用 Windows +Apache + MySQL + PHP( WAMP) 的配置方案,结合Dreamweaver cs6设计工具实现本广告系统的开发与实现。
PHP(Hypertext Preprocessor的缩写,中文名:“超文本预处理器”)是一种通用开源脚本语言[2],具有执行效率高、安全稳定、免费开源、跨平台等特性得到广泛采用[3]。
MySQL是小型关系型数据库管理系统,特点是开放源码、体积小、速度快,广泛应用于中小型网站系统开发[4]。
2 需求分析
2.1 市场需求
据CCF研究数据显示:中国主流媒介中,电视广告和报纸广告的收入市场份额从2009年开始出现明显的下滑态势,2011年,网络广告的收入超越报纸的收入,在2013年,网络广告收入则超越电视广告收入,网络媒体成为第一大广告收入媒体,在2014年,网络广告的收入份额还将继续增长,而电视则在继续下降,网络广告的收入份额将继续显著领跑市场[5]。2002-2014年中国个媒介广告收入份额曲线图,如图1所示。
在如此火爆的网络广告市场中,对于网络广告公司,迫切需要拥有一个功能齐全、管理高效的广告系统。
2.2 功能需求
广告系统功能需求主要分为三个部分,分别是广告管理、广告效果和用户管理三大功能模块。广告管理实现:广告添加、修改、删除、暂停、统计等功能;广告效果实现:广告点击次数、点击率、广告主、广告状态等;广告用户管理实现:用户注册、登录、注销等功能。
3 系统各功能模块
3.1 功能模块
1) 广告管理模块
广告管理是系统核心部分,主要实现广告添加、广告修改、广告删除、广告暂停、广告统计等功能。如图2所示。
其中广告添加子模块功能如图3所示。包含有:
广告链接:通过链接可以链接到用户网站;
图片链接:显示广告的自定义图片;
广告位置:选择广告展示的位置;
开始时间:广告开始展示的时间;
结束时间:广告结束展示的时间。
2)广告效果统计功能模块
点击次数:显示广告被点击次数;
显示次数:显示广告显示次数;
有效时间:显示广告开始日期和失效截止期;
广告用户:显示广告属于哪个广告商会员用户;
广告状态:显示广告显示中、已过期、暂停等状态。如下图4所示。
3)用户管理模块
用户注册:广告主注册成会员,以便申请广告位;
用户登录:用户登录个人管理后台管理个人信息和申请广告信息。如图5所示。
3.2 系统总体流程设计图
根据整个系统设计图获取清晰的流程设计步骤,以模块设计的方式完成整个系统的功能。成功通过用户名和密码验证后进入系统,系统主要分三个模块,包括:广告管理、广告统计、用户管理三部分。用户管理模块,由删除用户、我的账号两部分组成;广告管理由五个部分组成:广告暂停、广告统计、广告删除、广告修改、广告添加;在广告添加模块中,又由以下几个子部分组成:广告链接、广告类型、广告位置、开始时间、结束时间;广告效果模块,由以下五个部分组成:有广告用户、广告状态、点击次数、点击率、有效时间。系统总体流程设计图如图6所示。
3.3 系统E-R图设计
实体关系图( Entity Relationship Diagram,E-R图) 提供了表示实体类型属性和联系的方法,用来描述现实世界的概念模型 E-R 模型在数据库设计领域得到了广泛的认同,大部分数据库设计产品使用实体-联系模型( E-R模型) 帮助用户进行数据库设计[5]。
本系统中的实体有:用户和管理员、广告项目、广告信息。用户添加广告,是1:N的关系,成功添加多个广告后,可以用系统返回广告唯一ID,查询已添加的广告信息,获取查询结果,可以对广告进行删除、暂停、恢复等操作。
1)用户广告E-R关系图
如图7所示。
2)管理员管理项目E-R图
如图8所示。
3)广告实体E-R图
如图9所示。
4 设计与实现
4.1 数据库设计
1)数据库的创建
本广告系统使用MySQL数据库。使用SQL语言对MySQL数据库进行操作。先建立一个数据库,再建立一个数据库表结构。本系统创建了数据库binary_data。
2)系统数据库表的设计
本系统总共4个数据库表:会员用户信息表、管理员用户信息表、广告信息表、广告申请表。
下面介绍各个表的结构以及表中包含的字段:
管理员用户信息表,表中字段包括管理员的编号、密码和账号,如表1所示。
4.2 数据库连接方式设计
在PHP中实现对数据库动态连接,PHP 提供了php_mysql 扩展来实现与MySQL 数据库的操作,从而能够对系统的数据库进行连接、查询等操作[6]。
1)数据库的创建
使用phpmyadmin管理工具,可以简单、方便、快捷地建立数据库及数据库表。
2)连接数据库
数据库创建成功后,就可以和数据库建立连接关系。php_mysql扩展提供mysql_connect方法,使用该方法建立和管理应用程序和MySQL数据库之间的连接。再使用mysql_select_db方法选择需要操作的数据库。
$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)数据库查询操作
先定义一个新的SQL查询语句,再用mysql_query方法执行查询操作,查询成功,记录集将会被成功返回。这样用户就可以获取数据库表里的所有信息。当然,也可以定义删除、插入、更新等SQL语句,来实现不同的操作。以下是查询操作的代码实例:
$selectSQL = “SELECT * FROM member_ad_manager”;
$Result1 = mysql_query($selectSQL);
4.3 系统功能实现
1) 管理员登陆模块
登录模块需要管理员填写用户名,用户密码,两者不能为空,否则系统会检测到并提示用户重新填写。如果用户名和密码两者有错误,系统会提示用户出现的内容,让用户再次填写。只有用户名和密码都与系统数据库里的记录一致,管理员才能成功登录本广告系统。
2)广告添加模块
广告添加模块能让管理员将广告信息添加到系统数据库,如:广告链接、图片链接、广告位置、开始时间、结束时间等。
广告链接
图片链接
广告位置
用户通过下拉列表,选择广告在网页上显示的位置、开始时间、结束时间。
<?php
for($i=2014; $i<=2020; $i++)
//使用for循环设置年份显示范围。
{
echo "";
}
?>
年
3)广告效果统计
使用SQL句可以实现广告点击次数统计功能。
$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"
这两个SQL查询语句,均已添加搜索条件。"select * from "是表示从表images中查询并返回条件是pic_place="ad_1"的所有结果,由ad_begin来决定信息的显示顺序。当搜索条件为关键词时,从表images中查找,条件为pic_链接 like '%baidu%' or pic_place like '%ad%',由 ad_end 来决定信息的显示顺序。
4)广告修改模块
此模块可以显示广告内容,也可以修改广告内容,比如广告位置、链接、开始时间、结束时间等内容。代码如下:
$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)广告删除模块
如要删除不需要的广告内容,先通过mysql_connect()方法连接数据库,再设置SQL删除语句,由mysql_query()方法调用执行,即可实现此功能,下面是示例代码:
<?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删除语句,当将该语句当作参数传递给mysql_query()方法后,即可以执行删除操作。以上代码是:删除images表中的信息,通过广告位置pic_place识别使用where pic_place="ad_1" 。
6)广告暂停模块
在某种情况下,出于某种考虑,我们可能需要先暂停某个广告,此模块同样也是通过简单SQL语句实现此功能,可以改变某条广告的显示状态,从而使其暂时不会显示。
$setSQL ="UPDATE images SET status=0 WHERE pic_place="ad_1";
mysql_query($setSQL);
这里设置在广告位置pic_place 位 a1_1 上的广告显示状态status 的值为0,表示“暂停显示广告”。同理,恢复广告的话,status的值更新为1即可,2表示已经过期。
7)广告效果统计模块
通过SQL查询语句,可以获取广告的所有详细信息。包括:广告的点击次数、点击率,开始时间,结束时间等,以下是实例代码:
$query_Recordset1 = "SELECT * FROM images";
$Recordset1 = mysql_query($query_Recordset1);
这两条语句可以查询并返回广告内容表images里面所有记录,为一个记录集$Recordset1。
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1))
通过while语句,可以循环迭代每一条广告信息。
获得广告链接:$row_Recordset1['pic_链接']
获得广告商会员名:$row_Recordset1['user_name']
获得广告显示位置:$row_Recordset1['pic_place']
获得广告显示状态:$row_Recordset1['status']
获得广告开始时间:$row_Recordset1['ad_begin']
获得广告结束时间:$row_Recordset1['ad_end']
获得广告显示次数:$row_Recordset1['showtimes']
获得广告点击次数:$row_Recordset1['clicktimes']
5 系统测试与分析
5.1 测试目标及方法
系统测试目的是发现系统存在的错误并修正。
测试方法:
白盒法:从系统具体的逻辑结构和执行路径出发,设计测试程序内部逻辑,完成系统测试目的。
黑盒法:把程序当作一个不能打开的黑盒子,不考虑内部结构和特性,测试程序是否能在获得输入后返回正确结果[7]。
5.2 测试过程
首先,打开登录页面,输入管理员账户和密码,测试登录页面。如图10所示。
登录页面测试成功,进入管理界面,图11所示。
进入管理后台,可以对每个模块的功能进行分步骤测试,包括添加广告、广告显示状态、广告展示次数、点击次数统计、广告暂停、恢复、删除、账号管理等。
添加广告功能测试,在后台广告管理添加广告,选择广告图片、输入广告链接、广告位置、设置开始时间和结束时间,如图12所示。
按“提交”添加广告,系统提示广告添加成功信息,如图13所示,测试成功。
类似测试方法,广告点击次数统计、广告暂停、删除、恢复都通过测试。
5.3 系统测试分析
通过功能模块测试,本系统实现了网络广告的基本功能。在开发系统过程中,将各个功能写成独立模块,方便系统测试、维护和调试。测试中,某个模块出现错误,通过设置断点测试,不断缩小问题发生的范围,找到问题所在,重新调试,找到新的解决方法。通过不断测试修正,使得系统变得更加健壮和稳定[8]。
6 结束语
本文详细介绍了网络广告系统的设计过程,从数据库的设计到功能模块的开发,并对各功能模块进行了测试与分析,实现了广告系统的基本功能。系统还可以进一步开发与功能扩展,以满足有特定需求的广告企业。
参考文献:
[1] 刘博. 广告销售预订系统的设计与实现[D]. 北京: 北京邮电大学, 2011.
[2] 黄雅萍, 刘晓强, 吴成义. 基于MySQL和PHP的分布式事务处理[J]. 东华大学学报:自然科学版, 2011, 37(1): 81-85.
[3] 杨桂丽, 黎敬涛. 基于php的一个家庭理财系统的设计与实现[J]. 计算机应用与软件, 2013, 30(2): 259-262.
[4] 金欣, 易琪. 基于PHP和MySQL技术的网络教学平台构建[J]. 科技广场, 2011(2): 43-45.
[5] 2015年中国互联网发展十大趋势[EB/OL].http://www.ccf.org.cn/sites/ccf/nry.jsp?contentId=2839621942013.
[6] 陶冶. Winodws下Apache+PHP+MySQL的安装配置[J]. 科技创新导报, 2010(27): 32.
[7] 张新华, 何永前. 软件测试方法概述[J]. 科技视界, 2012(4): 35-37.
[8] 李军锋, 栾静. 探索性软件测试解析[J]. 计算机与数字工程, 2011, 39(8): 39-42.