国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

用PHP+MySQL 實(shí)現(xiàn)小型站點(diǎn)廣告管理

2024-07-24 12:56:36
字體:
供稿:網(wǎng)友
  • 網(wǎng)站運(yùn)營(yíng)seo文章大全
  • 提供全面的站長(zhǎng)運(yùn)營(yíng)經(jīng)驗(yàn)及seo技術(shù)!
  • 圖片鏈接廣告大概是最為常用的網(wǎng)絡(luò)廣告模式,但是多條廣告的動(dòng)態(tài)隨機(jī)顯示可不是那么簡(jiǎn)單的事情。php的文件上傳函數(shù)提供了在這塊468x60像素的區(qū)域(網(wǎng)頁(yè)廣告的標(biāo)準(zhǔn)尺寸)實(shí)現(xiàn)能夠根據(jù)權(quán)值大小而隨機(jī)顯示廣告的解決方案,從而避免了開發(fā)ftp程序或是asp和perl cai中需要外掛擴(kuò)展才能實(shí)現(xiàn)此項(xiàng)功能的弊端。
      
      本例在php4+mysql+apache for win9x/2000下調(diào)試通過,共包括兩部分:用來增加新廣告的程序addnewad.php3以及顯示廣告的程序showad.php3,都存放在服務(wù)器php文件目錄下的“test/guanggao/”目錄中。在guanggao目錄中建立一個(gè)存放廣告鏈接圖片的子目錄“adbanner/”。下面我們按步驟進(jìn)行分析。
      
      1.首先,建立mysql數(shù)據(jù)庫(kù):guanggao
      在windows環(huán)境下,建立一個(gè)mysql空數(shù)據(jù)庫(kù)很簡(jiǎn)單,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)都是存在于mysql/data/目錄下的一個(gè)子目錄,所以只要在該目錄下新建子目錄guanggao就可以了,這時(shí)數(shù)據(jù)庫(kù)內(nèi)還沒有任何表和數(shù)據(jù)。
      
      2.建立新增廣告程序:addnewad.php3
      設(shè)計(jì)思路:其中先用表單得到用戶的新廣告信息;然后用php函數(shù)copy()將鏈接圖片(banner)文件上傳到服務(wù)器adbanner目錄下;最后將圖片文件名、廣告網(wǎng)址、說明、加權(quán)信息等寫入建立的mysql數(shù)據(jù)表ad中。該程序代碼如下:
      
      # addnewad.php3——增添新的廣告 #
      <center><h1>增添新廣告</h1></center>
      //表單用來輸入新增廣告信息,并交給下面的php程序處理;
      //其中,加權(quán)值priority數(shù)字愈大,載入頁(yè)面圖片出現(xiàn)的機(jī)率就愈高,默認(rèn)為1。
      <form enctype="multipart/form-data" action="addnewad.php3" method=post>
      廣告 banner: <input name=banner type="file"><br>
      廣告網(wǎng)址url: <input name=url type=text size=30><br>
      圖片鏈接說明alt: <input name=alt type=text size=30><br>
      顯示加權(quán): <input name=priority type=text size=5 value=1><br>
      <input type="submit" value="提交">
      </form>
      //處理表單數(shù)據(jù)的php程序;
      <?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ù);
      connection = mysql_connect();
      //選擇數(shù)據(jù)源guanggao,執(zhí)行查詢;;
      mysql_select_db("guanggao", );
      query="select * from ad";
      result=mysql_query( query);
      //如果數(shù)據(jù)表ad不存在,則按以下結(jié)構(gòu)創(chuàng)建新數(shù)據(jù)表ad;
      if(!result){
      mysql_query("
      create table ad(
      url varchar(100) not null,
      banner varchar(150) not null,
      alt varchar(100) null,
      priority tinyint(4) default 1 not null
      )") or die(mysql_error());
      }
      //向數(shù)據(jù)表ad中插入來自于表單的新數(shù)據(jù);
      query="insert into ad(url, banner, alt, priority) values( url, banner_name,
      alt, priority)";
      //插入成功則顯示以下信息;
      try=mysql_query( query);
      if( try){
      echo "一條廣告新增完成,詳細(xì)信息:
      ";
      echo "<a href=" url"><img src="adbanner/ banner_name" alt=". alt." border=0></a><br>";
      echo "廣告網(wǎng)址: url<br>廣告鏈接說明: alt<br>顯示加權(quán): priority ";
      }
      }
      ?>
      
      3.建立顯示廣告程序:showad.php3
      設(shè)計(jì)思路:得到數(shù)據(jù)庫(kù)表中所有各列信息分別存到相應(yīng)的一維數(shù)組中,將所有廣告的權(quán)值相加得到一個(gè)最大隨機(jī)數(shù),每次載入頁(yè)面用srand() 產(chǎn)生一個(gè)隨機(jī)樹種子,再用rand()函數(shù)產(chǎn)生一個(gè)從1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù),然后按照一定的規(guī)則隨機(jī)顯示不同廣告條,權(quán)值越大被顯示的機(jī)會(huì)越大。
      
      # showad.php3——隨機(jī)顯示廣告 #
      <?php
      //連接選擇數(shù)據(jù)庫(kù);
      connection = mysql_connect();
      mysql_select_db("guanggao", connection);
      //執(zhí)行查詢得到廣告條數(shù);
      query="select url, banner, alt, priority from ad where priority > 0";
      result=mysql_db_query("guanggao", 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í)的百萬分之一秒產(chǎn)生隨機(jī)數(shù)種子;
      srand((double)microtime()*1000000);
      //得到1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù);
      pri = rand(1, pricount);
      //中間變量清零;
      pricount=0;
      //按加權(quán)值不同,產(chǎn)生用來顯示廣告的、元素為字串的數(shù)組;
      for( i=0; i< numrows-1; i++) {
      pricount += adpriority[ i];
      if ( pri <= pricount) {
      ad[]="<a href=" adurl[ i]" target=new></a>";
      }
      }
      //顯示廣告,權(quán)值越大,顯示機(jī)會(huì)越大;
      echo ad[0];
      ?>
    發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 封开县| 张家川| 迁安市| 镶黄旗| 绿春县| 平顶山市| 都江堰市| 乐陵市| 嘉禾县| 无为县| 谢通门县| 平山县| 财经| 金乡县| 阳原县| 曲麻莱县| 启东市| 宝清县| 娱乐| 南城县| 凌海市| 墨脱县| 闻喜县| 垣曲县| 庆元县| 永胜县| 手机| 乌拉特中旗| 霍城县| 峡江县| 长寿区| 潢川县| 舟曲县| 乌拉特中旗| 茂名市| 密山市| 如皋市| 虞城县| 鹤庆县| 全南县| 鸡东县|