文章詳情頁(yè)
用PHP實(shí)現(xiàn)小型站點(diǎn)廣告管理(修正版)
瀏覽:4日期:2024-01-06 13:25:25
今天做照著例子做,發(fā)現(xiàn)其中有很多錯(cuò)誤的地方,為了讓廣大菜鳥(niǎo)兄弟更好的理解,我把修改后的文件給大家看看。 數(shù)據(jù)結(jié)構(gòu)如下: 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******************** <? if($submit){ ;;;;//處理表單數(shù)據(jù)的PHP程序; ;//圖片banner名和鏈接地址不能為空; ;;;;if (( banner!="") & ( url!="")) { ;;;;//若廣告鏈接和圖片名已被使用,必須另選; ;;;;if (file_exists("adbanner/". $banner_name)) { ;;;;echo "廣告圖片. banner_name.已被使用,請(qǐng)另選!";;;exit; ;;;;}; ;;;;//上傳鏈接圖片文件名到adbanner目錄; ;;;;copy( $banner,"adbanner/". $banner_name); ;;;//連接MySQL數(shù)據(jù)庫(kù); ;;;;include("config.inc"); ;;;//向數(shù)據(jù)表ad中插入來(lái)自于表單的新數(shù)據(jù); ;;;;$query="insert into ad (url, alt, priority, banner) values('$url','$alt','$priority','$banner_name')";;//插入成功則顯示以下信息; ;;;;$try=mysql_query($query); ;;;if($try){ ;;;echo "一條廣告新增完成,詳細(xì)信息:";;echo "";;echo "廣告網(wǎng)址:;;$url 廣告鏈接說(shuō)明: $alt 顯示加權(quán):;;$priority ";;;}else{echo "出錯(cuò)";} ;;;;} ;;;;}else{ ;;;;?> <html> <head> <title>Untitled</title> </head> <body bgcolor="#ffffff"> <p>廣告交換表</p> <form method="post" action="putad.php" enctype="multipart/form-data"> ;;<p>圖 片 URL: ;;;;<input type="file" name="banner"> ;;</p> ;;<p>連接 URL: ;;;;<input type="text" name="url"> </p> ;;<p>顯示權(quán)數(shù): ;;;;<input type="text" name="priority"></p> <p>連接說(shuō)明: ;;;;<input type="text" name="alt"> ;;</p> <p> ;;;;<input type="submit" name="submit" value="確定"> ;;;;<input type="reset" name="concel" value="重填"> ;;</p> </form> </body> </html> <?}?> ***************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()函數(shù)獲取有用的列信息并存到相應(yīng)數(shù)組中; ;;;;while($row = mysql_fetch_object($result)) { ;;;;;$adurl[]=$row->url; ;;;;;$adbanner[]=$row->banner; ;;;;;$adalt[]=$row->alt; ;;;;;$adpriority[]=$row->priority; ;;;;} ;;;;//初始化中間變量; ;;;;;$numcheck=$numrows; ;;;;;$i=$pricount=0; ;;;;//得到最大隨機(jī)數(shù); ;;;;while($numcheck) { ;;;;;$pricount+=$adpriority[$i]; ;;;;;$i++; $numcheck--; ;;;} ;;;//程序執(zhí)行時(shí)的百萬(wàn)分之一秒產(chǎn)生隨機(jī)數(shù)種子; ;;;srand((double)microtime()*1000000); ;;;//得到1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù); ;;;;$pri= rand(1,$pricount); ;;;//中間變量清零; ;;;;;$pricount=0; ;;;;//按加權(quán)值不同,產(chǎn)生用來(lái)顯示廣告的、元素為字串的數(shù)組; ;;;;for($i=0;$i<$numrows;$i++) { ;;;;;$pricount+=$adpriority[$i]; ;;;;if ($pri<=$pricount) { ;;;;;$ad[]="<a href=$adurl[$i]><img src=adbanner$adbanner[$i] alt=$adalt[$i] border=0></a>";;;} ;;;;} ;;;;//顯示廣告,權(quán)值越大,顯示機(jī)會(huì)越大; ;;;;echo;;$ad[0]; ;;;;?> 注釋?zhuān)浩渲衏onfig.inc里面就是連接mysql數(shù)據(jù)庫(kù)的東西,在這就不列出來(lái)了。上面的程式還有改進(jìn)空間,還有好多功能沒(méi)實(shí)現(xiàn),如果你愿意你也可以修改。不過(guò)修改后最好給一份給我:terence611005@sina.com 有問(wèn)題請(qǐng)和我聯(lián)系:oicq:18680986;;
標(biāo)簽:
PHP
排行榜
