欢迎来到福编程网,本站提供各种互联网专业知识!

用PHP实现小型站点广告管理(修正版)

发布时间:2006-10-09 作者: 来源:转载
今天做照着例子做,发现其中有很多错误的地方,为了让广大菜鸟兄弟更好的理解,我把修改后的文件给大家看看。数据结构如下:CREATETABLEad(urlvarchar(100)NOTNULL,bannervarchar(150)NOTNULL,altvarchar(100),priorityint(4)DEFAULT'1'NOTNULL
今天做照着例子做,发现其中有很多错误的地方,为了让广大菜鸟兄弟更好的理解,我把修改后的文件给大家看看。

数据结构如下:

CREATE TABLE ad (

url varchar(100) NOT NULL,

banner varchar(150) NOT NULL,

alt varchar(100),

priority int(4) DEFAULT '1' NOT NULL,

)

增加广告的文件

***************putad.php********************

//处理表单数据的PHP程序;

//图片banner名和链接地址不能为空;

if (( banner!="") & ( url!="")) {

//若广告链接和图片名已被使用,必须另选;

if (file_exists("adbanner/". $banner_name)) {

echo "广告图片. banner_name.已被使用,请另选!";

exit;

};

//上传链接图片文件名到adbanner目录;

copy( $banner,"adbanner/". $banner_name);

//连接MySQL数据库;

include("config.inc");

//向数据表ad中插入来自于表单的新数据;

$query="insert into ad (url, alt, priority, banner) values('$url','$alt','$priority','$banner_name')";

//插入成功则显示以下信息;

$try=mysql_query($query);

if($try){

echo "一条广告新增完成,详细信息:";

echo "";

echo "广告网址:$url

广告链接说明: $alt

显示加权:$priority ";

}else{echo "出错";}

}

}else{

?>

Untitled

广告交换表

图 片 URL:

连接 URL:

显示权数:

连接说明:

***************showad.php********************

include("config.inc");

$query="SELECT url, banner, alt, priority from ad";

$result=mysql_query($query);

$numrows=mysql_num_rows($result);

//使用mysql_fetch_object()函数获取有用的列信息并存到相应数组中;

while($row = mysql_fetch_object($result)) {

$adurl[]=$row->url;

$adbanner[]=$row->banner;

$adalt[]=$row->alt;

$adpriority[]=$row->priority;

}

//初始化中间变量;

$numcheck=$numrows;

$i=$pricount=0;

//得到最大随机数;

while($numcheck) {

$pricount+=$adpriority[$i];

$i++; $numcheck--;

}

//程序执行时的百万分之一秒产生随机数种子;

srand((double)microtime()*1000000);

//得到1到最大随机数之间的一个随机数;

$pri= rand(1,$pricount);

//中间变量清零;

$pricount=0;

//按加权值不同,产生用来显示广告的、元素为字串的数组;

for($i=0;$i<$numrows;$i++) {

$pricount+=$adpriority[$i];

if ($pri<=$pricount) {

$ad[]="$adalt[$i]";

}

}

//显示广告,权值越大,显示机会越大;

echo$ad[0];

?>

注释:其中config.inc里面就是连接mysql数据库的东西,在这就不列出来了。上面的程式还有改进空间,还有好多功能没实现,如果你愿意你也可以修改。不过修改后最好给一份给我:terence611005@sina.com

有问题请和我联系:oicq:18680986

相关推荐