版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Good is good, but better carries it.精益求精,善益求善。phpmysql經(jīng)典案例剖析版2011111最新版2011第第章章導(dǎo)讀投票系統(tǒng)(PHP+MySQL)動(dòng)態(tài)鏈接庫(kù)投票添加功能區(qū)域統(tǒng)計(jì)圖形顯示IP來(lái)源判斷投票系統(tǒng)是一般網(wǎng)站常用的一種系統(tǒng)。它是一種在網(wǎng)站上提出調(diào)查題目,由用戶在線投票并對(duì)調(diào)查投票的統(tǒng)計(jì)結(jié)果直接顯示的調(diào)查工具。網(wǎng)站可以通過(guò)投票系統(tǒng)統(tǒng)計(jì)的數(shù)據(jù)來(lái)了解用戶對(duì)一些熱點(diǎn)問(wèn)題的看法。通常可以用投票系統(tǒng)來(lái)了解用戶對(duì)網(wǎng)站的態(tài)度,對(duì)網(wǎng)站服務(wù)的評(píng)價(jià)或?qū)W(wǎng)站新推出的新產(chǎn)品或服務(wù)的反映等。通過(guò)投票系統(tǒng)搜集的信息可以對(duì)網(wǎng)站做出相應(yīng)改進(jìn)。1.1系統(tǒng)分析本節(jié)通過(guò)系統(tǒng)背景、系
2、統(tǒng)模塊分析和系統(tǒng)流程圖3個(gè)方面來(lái)對(duì)系統(tǒng)進(jìn)行分析。1.1.1系統(tǒng)背景從國(guó)際互聯(lián)網(wǎng)到校園網(wǎng)、企業(yè)局域網(wǎng),各種網(wǎng)上投票系統(tǒng)隨處可見(jiàn)。意見(jiàn)調(diào)查、用戶信息統(tǒng)計(jì)、經(jīng)營(yíng)情況調(diào)查都可以作為投票的內(nèi)容。網(wǎng)上投票系統(tǒng)憑借其方便快捷等特點(diǎn),已經(jīng)成為互聯(lián)網(wǎng)資源中不可缺少的一部分。網(wǎng)上投票系統(tǒng)是網(wǎng)站搜集用戶需求并有效地實(shí)施市場(chǎng)策略的重要手段之一。通過(guò)開(kāi)展問(wèn)卷調(diào)查,可以迅速了解不同行業(yè)、不同區(qū)域用戶的需求,客觀地搜集需求信息,及時(shí)調(diào)整網(wǎng)站的營(yíng)銷策略以滿足不同的需求。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)上投票系統(tǒng)的作用將會(huì)越來(lái)越大。1.1.2系統(tǒng)模塊分析為了更合理地設(shè)計(jì)投票系統(tǒng),需要從以下3點(diǎn)進(jìn)行分析。1投票的形式網(wǎng)上投票系統(tǒng)是網(wǎng)站搜集
3、用戶需求信息的一個(gè)途徑,可以根據(jù)網(wǎng)站的需要設(shè)置一個(gè)或多個(gè)調(diào)查。不同的調(diào)查需要設(shè)置不同的選項(xiàng),不同的調(diào)查要求,選項(xiàng)的形式也是不同的(單選或多選),不同時(shí)間段又會(huì)有不同的調(diào)查。既然網(wǎng)站要通過(guò)投票系統(tǒng)搜集信息,那么投票就必須有結(jié)果和對(duì)用戶信息的統(tǒng)計(jì)。2投票的特點(diǎn)由于互聯(lián)網(wǎng)本身的開(kāi)放性,使網(wǎng)上投票面臨種種危險(xiǎn),也由此提出了相應(yīng)的安全控制要求。信息保密性:投票者有保密的要求。如果用戶名及投票內(nèi)容被人知悉,就對(duì)用戶的隱私權(quán)構(gòu)成了侵害。因此在網(wǎng)上投票系統(tǒng)中一般均有匿名投票的要求。投票唯一性:一個(gè)投票者,其投票次數(shù)應(yīng)當(dāng)只有一次。若投票者可進(jìn)行多次投票,這將對(duì)調(diào)查內(nèi)容的可靠性構(gòu)成嚴(yán)重的威脅。有了這些特殊性的要求
4、,就需要對(duì)用戶的信息和投票進(jìn)行檢查和處理,以保證投票的客觀和有效性。針對(duì)用戶信息,如果無(wú)特殊的要求(例如只允許注冊(cè)會(huì)員參加),那么系統(tǒng)就只需要記錄的IP、投票時(shí)間、用戶所在區(qū)域。投票結(jié)果的顯示是非常重要的,一是用戶希望自己的投票能夠及時(shí)反映出來(lái);二是投票的結(jié)果也是給希望投票的用戶的一個(gè)參考。3投票系統(tǒng)結(jié)構(gòu)根據(jù)投票系統(tǒng)對(duì)形式的需求和投票系統(tǒng)自身的特點(diǎn),需要包含以下幾個(gè)模塊。投票管理模塊:該模塊可以添加、編輯和刪除調(diào)查選項(xiàng),設(shè)置調(diào)查選項(xiàng)為多選或單選,設(shè)置調(diào)查的時(shí)間期限,設(shè)置此調(diào)查是否啟用,調(diào)查結(jié)果的統(tǒng)計(jì)顯示。調(diào)查顯示模塊:該模塊的功能是顯示已啟用、未過(guò)期的調(diào)查。投票處理模塊:該模塊需要對(duì)投票進(jìn)行有
5、效性檢查,并將投票結(jié)果和用戶信息寫入數(shù)據(jù)庫(kù)。調(diào)查結(jié)果顯示模塊:該模塊主要是計(jì)算每個(gè)調(diào)查選項(xiàng)統(tǒng)計(jì)結(jié)果的百分比并以圖表的形式顯示出來(lái)。數(shù)據(jù)庫(kù)操作的基礎(chǔ)模塊:該模塊定義了連接數(shù)據(jù)庫(kù)、表的查詢,數(shù)據(jù)的插入、更新和刪除操作。該模塊作為一個(gè)通用模塊將會(huì)在后面的章節(jié)用到。1.1.3系統(tǒng)流程圖根據(jù)以上分析,系統(tǒng)的流程如圖1.1所示。在該流程中,網(wǎng)站管理員在投票管理里面添加調(diào)查數(shù)據(jù),然后在調(diào)查顯示模塊里面顯示出來(lái)。用戶通過(guò)調(diào)查顯示的“投票”按鈕投票,數(shù)據(jù)被傳遞到投票處理模塊,處理之后轉(zhuǎn)到調(diào)查結(jié)果顯示頁(yè)面。用戶也可以通過(guò)調(diào)查顯示的“查看結(jié)果”按鈕直接轉(zhuǎn)到調(diào)查結(jié)果顯示頁(yè)面。圖1.1系統(tǒng)流程圖1.2數(shù)據(jù)庫(kù)建立通過(guò)1.
6、1節(jié)對(duì)投票系統(tǒng)功能的分析可知,需要存儲(chǔ)的信息有調(diào)查信息、調(diào)查選項(xiàng)信息和用戶信息。因此,本系統(tǒng)需要建立調(diào)查信息表、調(diào)查選項(xiàng)信息表和用戶信息表。先從圖1.2來(lái)分析這幾個(gè)表之間的關(guān)系。從圖1.2可以看出調(diào)查信息、調(diào)查選項(xiàng)信息和用戶信息都是1對(duì)多的關(guān)系,并通過(guò)調(diào)查信息ID關(guān)聯(lián)。構(gòu)架的投票系統(tǒng)數(shù)據(jù)庫(kù)vote(采用MySQL數(shù)據(jù)庫(kù))如表1.1表1.3所示。圖1.2數(shù)據(jù)表關(guān)系圖表1.1調(diào)查信息表:EM_VOTE_INFO用于存儲(chǔ)調(diào)查內(nèi)容字段名類型(長(zhǎng)度)描述主鍵是否為空默認(rèn)值備注F_IDINT(10)表ID(唯一)是否自動(dòng)增加F_VOTE_TITLEVARCHAR(255)調(diào)查標(biāo)題否否F_VOTE_STAR
7、TINT(10)TIMESTAMP調(diào)查開(kāi)始時(shí)間否是F_VOTE_ENDINT(10)TIMESTAMP調(diào)查結(jié)束時(shí)間否是F_VOTE_ITEM_TYPETINYINT調(diào)查選項(xiàng)類型否否11為單選(默認(rèn))2為多選F_VOTE_IS_DISPLAYTINYINT是否啟用否否11為啟用(默認(rèn))0為禁用表1.2調(diào)查選項(xiàng)信息表:EE_ITEM_INFO用于存儲(chǔ)調(diào)查的選項(xiàng)信息字段名類型(長(zhǎng)度)描述主鍵是否為空默認(rèn)值備注F_IDINT(10)表ID(唯一)是否自動(dòng)增加F_ID_VOTE_INFOINT(10)調(diào)查表ID否否與調(diào)查表關(guān)聯(lián)F_ITEM_TITLEVARCHAR(50)選項(xiàng)標(biāo)題否否F_ITEM_COU
8、NTINT(10)統(tǒng)計(jì)數(shù)量否否0F_ITEM_ORDERTINYINT選項(xiàng)排列順序否否01為單選(默認(rèn))表1.3調(diào)查用戶信息表:EE_VOTE_USER用于存儲(chǔ)用戶信息字段名類型(長(zhǎng)度)描述主鍵是否為空默認(rèn)值備注F_IDINT(10)表ID(唯一)是否自動(dòng)增加F_ID_VOTE_INFOINT(10)調(diào)查表ID否否與調(diào)查表關(guān)聯(lián)F_USER_IPINT(15)用戶IP否否續(xù)表字段名類型(長(zhǎng)度)描述主鍵是否為空默認(rèn)值備注F_USER_TIMEINT(10)TIMESTAMP統(tǒng)計(jì)時(shí)間否否F_USER_AREAVARCHAR(20)用戶所在區(qū)域否否1.3數(shù)據(jù)庫(kù)操作基礎(chǔ)模塊數(shù)據(jù)操作基礎(chǔ)模塊主要實(shí)現(xiàn)數(shù)據(jù)庫(kù)
9、連接以及對(duì)數(shù)據(jù)庫(kù)表的一些基本操作功能。它包括配置文件和數(shù)據(jù)庫(kù)操作文件。下面分別對(duì)它們做詳細(xì)講解。1.3.1配置文件config.inc.php建立配置文件是系統(tǒng)構(gòu)架需要考慮的重點(diǎn)。因?yàn)樵谝粋€(gè)系統(tǒng)里會(huì)有一些常用的參數(shù)在很多地方可以用到,如果到使用的時(shí)候才定義,那么需要修改的時(shí)候就會(huì)相當(dāng)?shù)穆闊?,而且容易出錯(cuò),代碼的可讀性也很差。在配置文件里放的主要是數(shù)據(jù)庫(kù)連接用的參數(shù)和一些全局變量。代碼如下:1.3.2數(shù)據(jù)操作文件db.inc.phpPHP是一種面向?qū)ο蟮木幊陶Z(yǔ)言。這個(gè)數(shù)據(jù)操作文件主要用于建立一個(gè)類。該類的初始化構(gòu)造函數(shù)可以連接數(shù)據(jù)庫(kù)和表。其他的方法包括對(duì)表的查詢、數(shù)據(jù)的插入、更新、刪除操作和事務(wù)
10、處理。事務(wù)處理是用在執(zhí)行多個(gè)更新或刪除操作時(shí)為了保證數(shù)據(jù)完整性而使用的。把這些基本操作封裝在一個(gè)模塊里面對(duì)于代碼的可讀性、系統(tǒng)的擴(kuò)展性和健壯性都有好處。代碼如下:CONN=$conn;/*功能:數(shù)據(jù)庫(kù)查詢函數(shù)*參數(shù):$sqlSQL語(yǔ)句*返回:二維數(shù)組或false*/publicfunctionselect($sql=)if(empty($sql)returnfalse;/如果SQL語(yǔ)句為空則返回falseif(empty($this-CONN)returnfalse;/如果連接為空則返回falsetry/捕獲數(shù)據(jù)庫(kù)選擇錯(cuò)誤并顯示錯(cuò)誤文件$results=mysql_query($sql,$th
11、is-CONN);catch(Exception$e)$msg=$e;include(ERRFILE);if(!$results)or(empty($results)/如果查詢結(jié)果為空則釋放結(jié)果并返回falsemysql_free_result($results);returnfalse;$count=0;$data=array();while($row=mysql_fetch_array($results)/把查詢結(jié)果重組成一個(gè)二維數(shù)組$data$count=$row;$count+;mysql_free_result($results);return$data;/*功能:數(shù)據(jù)插入函數(shù)*參數(shù)
12、:$sqlSQL語(yǔ)句*返回:0或新插入數(shù)據(jù)的ID*/publicfunctioninsert($sql=)if(empty($sql)return0;/如果SQL語(yǔ)句為空則返回falseif(empty($this-CONN)return0;/如果連接為空則返回falsetry/捕獲數(shù)據(jù)庫(kù)選擇錯(cuò)誤并顯示錯(cuò)誤文件$results=mysql_query($sql,$this-CONN);catch(Exception$e)$msg=$e;include(ERRFILE);if(!$results)/如果插入失敗就返回0,否則返回當(dāng)前插入數(shù)據(jù)IDreturn0;elsereturnmysql_in
13、sert_id($this-CONN);/*功能:數(shù)據(jù)更新函數(shù)*參數(shù):$sqlSQL語(yǔ)句*返回:TRUEORFALSE*/publicfunctionupdate($sql=)if(empty($sql)returnfalse;/如果SQL語(yǔ)句為空則返回falseif(empty($this-CONN)returnfalse;/如果連接為空則返回falsetry/捕獲數(shù)據(jù)庫(kù)選擇錯(cuò)誤并顯示錯(cuò)誤文件$result=mysql_query($sql,$this-CONN);catch(Exception$e)$msg=$e;include(ERRFILE);return$result;/*功能:數(shù)據(jù)
14、刪除函數(shù)*參數(shù):$sqlSQL語(yǔ)句*返回:TRUEORFALSE*/publicfunctiondelete($sql=)if(empty($sql)returnfalse;/如果SQL語(yǔ)句為空則返回falseif(empty($this-CONN)returnfalse;/如果連接為空則返回falsetry$result=mysql_query($sql,$this-CONN);catch(Exception$e)$msg=$e;include(ERRFILE);return$result;/*功能:定義事務(wù)*/publicfunctionbegintransaction()mysql_qu
15、ery(SETAUTOCOMMIT=0);/設(shè)置為不自動(dòng)提交,因?yàn)镸ySQL默認(rèn)立即執(zhí)行mysql_query(BEGIN);/開(kāi)始事務(wù)定義/*功能:回滾*/publicfunctionrollback()mysql_query(ROOLBACK);/*功能:提交執(zhí)行*/publicfunctioncommit()mysql_query(COMMIT);?1.4投票管理模塊投票管理模塊用于實(shí)現(xiàn)網(wǎng)站管理員對(duì)投票數(shù)據(jù)的管理,可以添加、編輯、刪除調(diào)查選項(xiàng),還可以查看調(diào)查統(tǒng)計(jì)的信息。該模塊包括調(diào)查類文件、調(diào)查列表文件、添加調(diào)查文件、編輯調(diào)查文件、刪除調(diào)查文件以及用戶統(tǒng)計(jì)文件。下面對(duì)這幾個(gè)文件分別進(jìn)行講
16、解。1.4.1調(diào)查類文件vote.inc.php該文件是一個(gè)類文件。它的功能主要是對(duì)調(diào)查信息、表1.2和表1.3的操作,除一些基本操作外,在開(kāi)發(fā)的過(guò)程中還可以根據(jù)需要添加其他的操作。調(diào)查類文件作為一個(gè)包含文件被調(diào)用。代碼如下:?jiǎn)芜x,/定義選項(xiàng)類型2=多選);public$_display=array(0=禁用,/定義調(diào)查啟用顯示1=啟用);privatefunction_construct()parent:_construct();/*功能:提取調(diào)查列表*返回:數(shù)組*/publicfunctiongetVoteList()$sql=SELECT*FROM.$this-_name;return$
17、this-select($sql);/*功能:提取指定表的指定ID的記錄*參數(shù):$id表ID,$name表名稱*返回:數(shù)組*/publicfunctiongetInfo($id,$name)$sql=SELECT*FROM.$name.WHEREF_ID=$id;$r=$this-select($sql);return$r0;/*功能:向指定表中插入數(shù)據(jù)*參數(shù):$name表名稱,$data數(shù)組(格式:$data字段名=值)*返回:插入記錄ID*/publicfunctioninsertData($name,$data)$field=implode(,array_keys($data);/定義S
18、QL語(yǔ)句的字段部分foreach($dataas$key=$val)/組合SQL語(yǔ)句的值部分$value.=.$val.;if($keyinsert($sql);/*功能:更新指定表指定ID的調(diào)查表記錄*參數(shù):$name表名稱,$id表ID,$data數(shù)組(格式:$data字段名=值)*返回:TRUEORFALSE*/publicfunctionupdateData($name,$id,$data)$col=array();foreach($dataas$key=$value)$col=$key.=.$value.;$sql=UPDATE.$name.SET.implode(,$col).WH
19、EREF_ID=$id;return$this-update($sql);/*功能:刪除指定ID的調(diào)查表記錄及相關(guān)表記錄*參數(shù):$id調(diào)查表ID*返回:TRUEORFALSE*/publicfunctiondelData($id)$this-begintransaction();try$sql=DELETEFROM.$this-_item.WHEREF_ID_VOTE_INFO=.$id;$this-delete($sql);/刪除調(diào)查選項(xiàng)里面的相關(guān)數(shù)據(jù)$sql=DELETEFROM.$this-_user.WHEREF_ID_VOTE_INFO=.$id;$this-delete($sql)
20、;/刪除用戶統(tǒng)計(jì)表里面的相關(guān)數(shù)據(jù)$sql=DELETEFROM.$this-_name.WHEREF_ID=.$id;$this-delete($sql);catch(Exception$e)$this-rollback();returnfalse;$this-commit();returntrue;/*功能:提取指定調(diào)查ID的選項(xiàng)*參數(shù):$vote_id調(diào)查ID*返回:數(shù)組*/publicfunctiongetItemList($vote_id)$sql=SELECT*FROM.$this-_item.WHEREF_ID_VOTE_INFO=$vote_id;return$this-sele
21、ct($sql);/*功能:刪除指定ID的選項(xiàng)表記錄*參數(shù):$id表ID*返回:TRUEORFALSE*/publicfunctiondelItemData($id)$sql=DELETEFROM.$this-_item.WHEREF_ID=$id;return$this-delete($sql);$sql.=“ORDERBYF_ITEM_ORDER”;/*功能:提取指定調(diào)查ID的用戶統(tǒng)計(jì)信息*參數(shù):$vote_id調(diào)查ID,$page當(dāng)前頁(yè)碼*返回:數(shù)組*/publicfunctiongetUserList($vote_id,$page=1)$start=($1)*$this-_pagesi
22、ze;$sql=SELECT*FROM.$this-_user.WHEREF_ID_VOTE_INFO=$vote_id;$sql.=LIMIT$start,$this-_pagesize;return$this-select($sql);/*功能:提取指定調(diào)查ID用戶統(tǒng)計(jì)記錄的條數(shù)*參數(shù):$vote_id調(diào)查ID*返回:記錄條數(shù)*/publicfunctiongetUserCount($vote_id)$sql=SELECTCOUNT(F_ID)FROM.$this-_user.WHEREF_ID_VOTE_INFO=$vote_id;$r=$this-select($sql);return
23、$r00;/*功能:刪除指定ID的用戶統(tǒng)計(jì)記錄*參數(shù):$id用戶統(tǒng)計(jì)表ID*返回:TRUEORFALSE*/publicfunctiondelUserData($id)$sql=DELETEFROM.$this-_user.WHEREF_ID=$id;return$this-delete($sql);?對(duì)單個(gè)表進(jìn)行查詢、插入、更新和刪除時(shí)的代碼很相似,唯一不同的是操作表的名稱。這里可以把這些對(duì)單個(gè)表的基本操作放到基礎(chǔ)類文件db.inc.php里面。加入如下代碼:/*功能:提取指定表的指定ID的記錄*參數(shù):$id表ID,$name表名稱*返回:數(shù)組*/publicfunctiongetInfo(
24、$id,$name)$sql=SELECT*FROM.$name.WHEREF_ID=$id;$r=$this-select($sql);return$r0;/*功能:向指定表中插入數(shù)據(jù)*參數(shù):$name表名稱,$data數(shù)組(格式:$data字段名=值)*返回:插入記錄ID*/publicfunctioninsertData($name,$data)$field=implode(,array_keys($data);/定義SQL語(yǔ)句的字段部分$i=0;foreach($dataas$key=$val)/組合SQL語(yǔ)句的值部分$value.=.$val.;if($iinsert($sql);/
25、*功能:更新指定表指定ID的調(diào)查表記錄*參數(shù):$name表名稱,$id表ID,$data數(shù)組(格式:$data字段名=值)*返回:TRUEORFALSE*/publicfunctionupdateData($name,$id,$data)$col=array();foreach($dataas$key=$value)$col=$key.=.$value.;$sql=UPDATE.$name.SET.implode(,$col).WHEREF_ID=$id;return$this-update($sql);/*功能:刪除指定ID的表記錄*參數(shù):$id表ID,$name表名稱*返回:TRUEORF
26、ALSE*/publicfunctiondelData($id,$name)$sql=DELETEFROM.$name.WHEREF_ID=$id;return$this-delete($sql);1.4.2調(diào)查列表文件VoteList.php該文件的功能是顯示調(diào)查信息表1.1中的數(shù)據(jù)列表。該文件包含配置文件調(diào)查類文件。提取列表的數(shù)據(jù)是通過(guò)調(diào)查類文件里面的提取列表方法來(lái)實(shí)現(xiàn)的。首先聲明一個(gè)調(diào)查類Vote的對(duì)象,通過(guò)這個(gè)對(duì)象來(lái)調(diào)用類的提取列表方法getVoteList()。通過(guò)這個(gè)頁(yè)面連接到添加、編輯、選項(xiàng)管理、用戶統(tǒng)計(jì)及刪除操作頁(yè)面。界面如圖1.3所示。圖1.3調(diào)查列表代碼如下:getVote
27、List();$time=time();?序號(hào)調(diào)查標(biāo)題開(kāi)始時(shí)間結(jié)束時(shí)間選項(xiàng)類型是否過(guò)期是否啟用操作$value)?_type$valueF_VOTE_ITEM_TYPE?$time)echo未過(guò)期;elseecho已過(guò)期;?_display$valueF_VOTE_IS_DISPLAY?ahref=EditVote.php?id=編輯ahref=ItemList.php?id=選項(xiàng)管理ahref=UserList.php?id=用戶統(tǒng)計(jì)信息ahref=DelVote.php?id=刪除1.4.3添加調(diào)查文件AddVote.php該文件的功能是添加新調(diào)查,將數(shù)據(jù)寫入表1.1中。該文件由圖1.3中
28、調(diào)查列表頁(yè)面的“添加調(diào)查”按鈕連接過(guò)來(lái)。用戶填寫完表單后單擊“提交”按鈕進(jìn)行處理。表單提交給自身,通過(guò)判斷是否為提交操作進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)的處理通過(guò)調(diào)查類Vote的對(duì)象調(diào)用父類DBSQL的insertData()方法實(shí)現(xiàn)的,界面如圖1.4所示。圖1.4添加調(diào)查1主程序部分該部分代碼用于實(shí)現(xiàn)提交數(shù)據(jù)的處理和操作界面的顯示。代碼如下:insertData($vote-_name,$data)/判斷是否操作成功echo操作成功;elseecho操作失敗;echo返回;exit();?調(diào)查標(biāo)題:所屬類型:_typeas$key=$value)/循環(huán)顯示類型選擇下拉列表框echo$value;?開(kāi)始時(shí)間
29、:?phpfor($i=1;$i=($year+1);$i+)/循環(huán)顯示開(kāi)始年份下拉列表框echo$i;?年?phpfor($i=1;$i=12;$i+)/循環(huán)顯示開(kāi)始月份下拉列表框if($i10)$i=0.$i;echo$i;?月?phpecho$day;/列表?日結(jié)束時(shí)間:?phpfor($i=1;$i=($year+1);$i+)/循環(huán)顯示結(jié)束年份下拉列表框echo$i;?年?phpfor($i=1;$i=12;$i+)/循環(huán)顯示結(jié)束月份下拉列表框if($i10)$i=0.$i;echo$i;?月?phpecho$day;?日是否啟用:?jiǎn)⒂媒?客戶端程序(JavaScript)在主程序
30、代碼里,表單提交之前會(huì)用到客戶端語(yǔ)言JavaScript來(lái)實(shí)現(xiàn)日期的選擇和數(shù)據(jù)正確性、完整性檢查。數(shù)據(jù)正確性、完整性檢查是在處理添加和編輯數(shù)據(jù)頁(yè)時(shí)必需的。必須檢查那些在數(shù)據(jù)庫(kù)里面不能為空的字段和有特殊格式的字段,保證它的正確性和完整性。調(diào)用JavaScript是通過(guò)表單中的onsubmit=javascript:returncheck();實(shí)現(xiàn)的。這個(gè)調(diào)用的意思是:如果返回true,就提交表單;否則不提交。check()函數(shù)的代碼如下:/功能:檢查日期格式是否是有效格式functioncheckIsValidDate(str)if(str=)/如果參數(shù)為空,則返回falsereturnfals
31、e;vararrDate=str.split(-);/把參數(shù)用split函數(shù)分割成數(shù)組,它等同與PHP中的explode函數(shù)if(parseInt(arrDate0,10)parseInt(d2,10)/將兩個(gè)字符串轉(zhuǎn)化成整數(shù),如果d1d2則開(kāi)始日期大于結(jié)束日期returnfalse;elsereturntrue;/定義一個(gè)javascript的原形Stotype.len=function()/計(jì)算字符串的長(zhǎng)度(一個(gè)雙字節(jié)字符長(zhǎng)度計(jì)2,ASCII字符計(jì)1)returnthis.replace(/x00-xff/g,aa).length;functioncheck()varStart=docum
32、ent.form1.start_y.value+-+document.form1.start_m.value+-+document.form1.start_d.value;varEnd=document.form1.end_y.value+-+document.form1.end_m.value+-+document.form1.end_d.value;if(document.form1.title.value=)/判斷標(biāo)題是否為空,為空則返回falsealert(請(qǐng)?zhí)顚懻{(diào)查名稱);document.form1.title.focus();returnfalse;if(document.for
33、m1.title.value.len()100)/判斷標(biāo)題長(zhǎng)度是否超過(guò)100alert(調(diào)查標(biāo)題不能超過(guò)100個(gè)字)document.form1.title.focus();returnfalse;if(!checkDateEarlier(Start,End)/判斷開(kāi)始日期是否大于結(jié)束日期alert(開(kāi)始日期因不能小于結(jié)束日期);returnfalse;日期處理JavaScript文件date.js的代碼如下:/功能:顯示開(kāi)始日期指定月份的天數(shù)/參數(shù):month月份functionregister_buildDay(month)varyearOb=document.getElementById
34、(start_y);/取得開(kāi)始日期年份vardayOb=document.getElementById(start_d);/取得開(kāi)始日期天數(shù)document.getElementById(start_d).length=0;varlastDay=register_getDay(yearOb.value,Number(month);/取得當(dāng)月的天數(shù)for(vari=1;i=lastDay;i+)/循環(huán)輸出下拉列表框vardayOption=document.createElement(OPTION);dayOb.options.add(dayOption);dayOption.innerText
35、=i;dayOption.value=i;dayOb.selectedIndex=0;/功能:重新設(shè)置開(kāi)始日期的天數(shù)functionregister_resetDay()vardayObject=document.getElementById(start_d);vardayLength=dayObject.length;for(vari=1;idayLength;dayLength-)/將開(kāi)始日期天數(shù)的下拉列表框循環(huán)移處dayObject.remove(i);/功能:顯示結(jié)束日期指定月份的天數(shù)/參數(shù):month月份functionregister_buildEndDay(month)varye
36、arOb=document.getElementById(end_y);/取得結(jié)束日期的年份vardayOb=document.getElementById(end_d);/取得結(jié)束日期的天數(shù)document.getElementById(end_d).length=0;varlastDay=register_getDay(yearOb.value,Number(month);/取得當(dāng)月的天數(shù)for(vari=1;i=lastDay;i+)/循環(huán)輸出下拉列表框vardayOption=document.createElement(OPTION);dayOb.options.add(dayOpt
37、ion);dayOption.innerText=i;dayOption.value=i;dayOb.selectedIndex=0;/功能:重新設(shè)置結(jié)束日期天數(shù)functionregister_resetEndDay()vardayObject=document.getElementById(end_d);vardayLength=dayObject.length;for(vari=1;idayLength;dayLength-)/將結(jié)束日期天數(shù)的下拉列表框循環(huán)移處dayObject.remove(i);/功能:取得指定年份和月份的天數(shù)/參數(shù):year年份month月份functionreg
38、ister_getDay(Year,Month)varLastDay=0;switch(Month)/判斷月份,1,3,5,7,8,10,12天數(shù)為31天,4,6,9,11為30天case1:case3:case5:case7:case8:Month=0+Month;case10:case12:LastDay=31;break;case4:case6:case9:Month=0+Month;case11:LastDay=30;break;case2:/判斷是否為閏年,是則2月為29天,不是則為28天Month=0+Month;if(Year%4=0&Year%100!=0)|Year%400=
39、0)LastDay=29;elseLastDay=28;break;default:LastDay=0;returnLastDay;1.4.4編輯調(diào)查文件EditVote.php該文件的功能是編輯調(diào)查信息。該文件由圖1.3中調(diào)查列表頁(yè)面的操作列“編輯”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。用戶編輯表單數(shù)據(jù)后單擊“提交”按鈕進(jìn)行數(shù)據(jù)處理。表單數(shù)據(jù)提交給自身,通過(guò)判斷是否為提交操作來(lái)處理數(shù)據(jù)。處理數(shù)據(jù)通過(guò)調(diào)查類Vote的對(duì)象來(lái)調(diào)用父類DBSQL的updateData()方法實(shí)現(xiàn)的。其界面如圖1.5所示。圖1.5編輯調(diào)查代碼如下:getInfo($_GETid,$vote-_name);$year=date(Y
40、);list($start_year,$start_month,$start_day)=explode(-,date(Y-m-d,$infoF_VOTE_START);list($end_year,$end_month,$end_day)=explode(-,date(Y-m-d,$infoF_VOTE_END);if($_SERVERREQUEST_METHOD=POST)/判斷是否為提交請(qǐng)求$dataF_VOTE_TITLE=$_POSTtitle;$dataF_VOTE_START=mktime(0,0,0,$_POSTstart_m,$_POSTstart_d,$_POSTstart_
41、y);$dataF_VOTE_END=mktime(0,0,0,$_POSTend_m,$_POSTend_d,$_POSTend_y);$dataF_VOTE_ITEM_TYPE=$_POSTtype;$dataF_VOTE_IS_DISPLAY=$_POSTdisplay;if($vote-updateData($vote-_name,$_POSTid,$data)/判斷是否操作成功echo操作成功;elseecho操作失敗;echo返回;exit();?調(diào)查標(biāo)題:inputname=titletype=textid=titlesize=40value=/所屬類型:_typeas$key=
42、$value)echo$value;?開(kāi)始時(shí)間:?phpfor($i=1;$i=($year+1);$i+)echo$i;?年?phpfor($i=1;$i=12;$i+)if($i10)$i=0.$i;echo$i;?月?phpecho$start_day;?日結(jié)束時(shí)間:?phpfor($i=1;$i=($year+1);$i+)echo$i;?年?phpfor($i=1;$i=12;$i+)if($i10)$i=0.$i;echo$i;?月?phpecho$end_day;?日是否啟用:inputname=displaytype=radiovalue=1/啟用inputtype=radio
43、name=displayvalue=0/禁用inputname=idtype=hiddenid=idvalue=/functioncheckIsValidDate(str)if(str=)returntrue;vararrDate=str.split(-);if(parseInt(arrDate0,10)parseInt(d2,10)returnfalse;elsereturntrue;Stotype.len=function()returnthis.replace(/x00-xff/g,aa).length;functioncheck()varStart=document.form1.sta
44、rt_y.value+-+document.form1.start_m.value+-+document.form1.start_d.value;varEnd=document.form1.end_y.value+-+document.form1.end_m.value+-+document.form1.end_d.value;if(document.form1.title.value=)alert(請(qǐng)?zhí)顚懻{(diào)查名稱);document.form1.title.focus();returnfalse;if(document.form1.title.value.len()100)alert(調(diào)查標(biāo)
45、題不能超過(guò)100個(gè)字)document.form1.title.focus();returnfalse;if(!checkDateEarlier(Start,End)alert(開(kāi)始日期因不能小于結(jié)束日期);returnfalse;比較添加調(diào)查和編輯調(diào)查文件,可以看出它們的代碼很相似,不同的是在編輯時(shí)多了提取編輯信息的內(nèi)容并顯示出來(lái)。那么可以將添加調(diào)查和編輯調(diào)查文件合并處理,只需要增加一個(gè)判斷就可以了。代碼如下:$vote=newVote();if($_GETid)/判斷是否有編輯信息的ID$info=$vote-getInfo($_GETid,$vote-_name);/提取編輯信息內(nèi)容if
46、($_SERVERREQUEST_METHOD=POST)$dataF_VOTE_TITLE=$_POSTtitle;$dataF_VOTE_START=mktime(0,0,0,$_POSTstart_m,$_POSTstart_d,$_POSTstart_y);$dataF_VOTE_END=mktime(0,0,0,$_POSTend_m,$_POSTend_d,$_POSTend_y);$dataF_VOTE_ITEM_TYPE=$_POSTtype;$dataF_VOTE_IS_DISPLAY=$_POSTdisplay;if($_POSTid)/判斷是否有編輯信息的IDif($vo
47、te-updateData($vote-_name,$_POSTid,$data)/執(zhí)行編輯操作echo操作成功;echo返回;exit();elseif($vote-insertData($vote-_name,$data)/執(zhí)行添加操作echo操作成功;echo返回;exit();1.4.5刪除調(diào)查文件DelVote.php該文件的功能是刪除調(diào)查及相關(guān)數(shù)據(jù)。該文件由圖1.3中調(diào)查列表頁(yè)面的操作列“刪除”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。刪除數(shù)據(jù)通過(guò)調(diào)查類Vote的對(duì)象調(diào)用父類DBSQL的delData()方法來(lái)實(shí)現(xiàn)。代碼如下:delData($_GETid)echo操作成功;echo返回;exit
48、();elseecho操作失敗;echo返回;exit();?1.4.6調(diào)查選項(xiàng)列表文件ItemList.php該文件的功能是顯示調(diào)查選項(xiàng)表1.2中的數(shù)據(jù)列表。該文件由圖1.3中調(diào)查列表頁(yè)面的操作列“選項(xiàng)管理”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。該文件通過(guò)類Vote的對(duì)象調(diào)用父類的getItemList()方法實(shí)現(xiàn)的。通過(guò)這個(gè)頁(yè)面可以連接到添加、編輯選項(xiàng)、刪除選項(xiàng)和設(shè)置選項(xiàng)順序頁(yè)面。界面如圖1.6所示。圖1.6調(diào)查選項(xiàng)列表代碼如下:getItemList($_GETid);?$info=$vote-getInfo($_GETid,$vote-_name);調(diào)查標(biāo)題:序號(hào)選項(xiàng)標(biāo)題統(tǒng)計(jì)操作$value)?次
49、ahref=EditItem.php?id=&voteid=編輯ahref=DelItem.php?id=&voteid=刪除inputtype=submitname=Submit3value=添加選項(xiàng)onclick=javascript:window.location=AddItem.php?voteid=/inputtype=buttonname=Submitvalue=設(shè)置順序onclick=javascript:window.location=SetOrder.php?voteid=/1.4.7添加、編輯調(diào)查選項(xiàng)文件OperItem.php該文件的功能是增加指定調(diào)查的選項(xiàng)和編輯指定調(diào)查
50、選項(xiàng)的信息。添加調(diào)查選項(xiàng)界面如圖1.7所示。該文件由圖1.6中調(diào)查選項(xiàng)列表頁(yè)面的“添加選項(xiàng)”按鈕連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。編輯調(diào)查選項(xiàng)界面如圖1.8所示。該文件由圖1.6中調(diào)查選項(xiàng)列表頁(yè)面的操作列“編輯”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)、選項(xiàng)ID參數(shù)。這里添加和編輯作為一個(gè)文件來(lái)處理。判斷當(dāng)有選項(xiàng)ID參數(shù)傳遞時(shí)為編輯狀態(tài),提取該選項(xiàng)信息并顯示。用戶編輯或添加完表單數(shù)據(jù)后單擊“提交”按鈕進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)處理通過(guò)調(diào)查類Vote的對(duì)象調(diào)用父類的insertData()方法實(shí)現(xiàn)的,通過(guò)調(diào)用updateData()方法實(shí)現(xiàn)編輯。圖1.7添加調(diào)查選項(xiàng)圖1.8編輯調(diào)查選項(xiàng)代碼如下:getInfo($_GETid,
51、$vote-_item);$title=編輯調(diào)查選項(xiàng);if($_SERVERREQUEST_METHOD=POST)/判斷是否提交請(qǐng)求$dataF_ID_VOTE_INFO=$_POSTvoteid;$dataF_ITEM_TITLE=$_POSTtitle;$dataF_ITEM_COUNT=0;$dataF_ITEM_ORDER=0;if($_POSTid)/有選項(xiàng)ID參數(shù),則執(zhí)行編輯操作if($vote-updateData($vote-_item,$_POSTid,$data)/判斷是否操作成功echo添加操作成功;echo返回;exit();elseecho添加操作失敗;echo返回
52、;exit();else/無(wú)選項(xiàng)ID參數(shù),則執(zhí)行添加操作if($vote-insertData($vote-_item,$data)/判斷是否操作成功echo編輯操作成功;echo返回;exit();elseecho編輯操作失敗;echo返回;exit();?調(diào)查管理$title調(diào)查標(biāo)題:您對(duì)網(wǎng)站的滿意程度?選項(xiàng)標(biāo)題:inputname=titletype=textid=titlesize=40value=/inputtype=hiddenname=idid=idvalue=inputtype=hiddenname=voteidid=voteidvalue=functioncheck()if(
53、document.form1.title.value=)/判斷標(biāo)題是否為空,是則彈出提示框alert(請(qǐng)?zhí)顚戇x項(xiàng)標(biāo)題);document.form1.focus();returnfalse;returntrue;1.4.8選項(xiàng)順序設(shè)置文件SetOrder.php該文件的功能是設(shè)置調(diào)查選項(xiàng)的顯示順序。該文件由圖1.6中調(diào)查選項(xiàng)列表頁(yè)面的“設(shè)置順序”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。用戶在順序文本框中輸入順序數(shù)值后單擊“提交”按鈕進(jìn)行數(shù)據(jù)處理。選項(xiàng)按數(shù)值順序從大到小排列。數(shù)據(jù)提交到本頁(yè)判斷是否為提交操作并進(jìn)行處理。數(shù)據(jù)的處理通過(guò)調(diào)查類Vote的對(duì)象調(diào)用父類的setOrder()方法實(shí)現(xiàn)的。選項(xiàng)順序設(shè)置界面
54、如圖1.9所示。圖1.9選項(xiàng)順序設(shè)置在調(diào)查類文件vote.inc.php中加入下列代碼:/*功能:設(shè)置指定調(diào)查的選項(xiàng)順序*參數(shù):$id選項(xiàng)ID數(shù)組,$order選項(xiàng)順序數(shù)組*返回:TRUEORFALSE*/publicfunctionsetOrder($id,$order)if($id)$this-begintransaction();tryforeach($idas$key=$value)$sql=UPDATE.$this-_item.SETF_ITEM_ORDER=$order$keyWHEREF_ID=$value;$this-update($sql);catch(Exception$e
55、)$this-rollback();returnfalse;$this-commit();returntrue;下面這段代碼定義了一個(gè)設(shè)置調(diào)查選項(xiàng)順序的函數(shù),這個(gè)函數(shù)在選項(xiàng)順序設(shè)置文件中被調(diào)用。代碼如下:getItemList($_GETvoteid);$info=$vote-getInfo($_GETvoteid,$vote-_name);if($_SERVERREQUEST_METHOD=POST)if($vote-setOrder($_POSTid,$_POSTorder)echo操作成功;echo返回;SetOrder.php?id=$_GETvoteid返回;exit();elsee
56、cho操作失敗;echo返回;SetOrder.php?id=$_GETvoteid返回;exit();?調(diào)查管理調(diào)查選項(xiàng)順序設(shè)置調(diào)查標(biāo)題:序號(hào)選項(xiàng)標(biāo)題順序$value)?inputname=idtype=hiddenid=idvalue=/inputname=ordertype=textid=ordervalue=size=10/inputtype=hiddenname=voteidid=voteidvalue=1.4.9刪除調(diào)查選項(xiàng)文件DelItem.php該文件的功能是刪除指定選項(xiàng)記錄。該文件由圖1.6中調(diào)查選項(xiàng)列表頁(yè)面的操作列“刪除”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)、選項(xiàng)ID參數(shù)。選項(xiàng)的刪除通
57、過(guò)類Vote的對(duì)象調(diào)用父類的delItemData()方法來(lái)實(shí)現(xiàn)。代碼如下:delItemData($_GETid)/判斷是否操作成功echo操作成功;echo返回;exit();elseecho操作失敗;echo返回;exit();?1.4.10用戶統(tǒng)計(jì)信息列表文件UserList.php該文件的功能是提取指定調(diào)查的用戶統(tǒng)計(jì)信息列表。該文件由圖1.3中調(diào)查列表頁(yè)面的操作列“用戶統(tǒng)計(jì)信息”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。用戶統(tǒng)計(jì)信息列表以分頁(yè)顯示,每頁(yè)顯示10條記錄。分頁(yè)的實(shí)現(xiàn)通過(guò)頁(yè)碼來(lái)計(jì)算每頁(yè)提取記錄的開(kāi)始位置。計(jì)算公式為開(kāi)始位置=(頁(yè)碼-1)每頁(yè)顯示數(shù)量。界面如圖1.10所示。圖1.10調(diào)查用戶
58、統(tǒng)計(jì)信息代碼如下:getUserList($_GETid,$cur_page);$count=$vote-getUserCount($_GETid);$pagecount=ceil($count/$vote-_pagesize);/計(jì)算總共的頁(yè)數(shù)if(!$pagecount)$pagecount=1;/如果無(wú)總頁(yè)數(shù),則默認(rèn)為1$url=?id=$_GETid&page=;/翻頁(yè)跳轉(zhuǎn)的地址?調(diào)查管理用戶統(tǒng)計(jì)信息列表ahref=AreaList.php?id=點(diǎn)擊查看區(qū)域統(tǒng)計(jì)序號(hào)用戶IP所在區(qū)域投票時(shí)間$value)?共有信息共/頁(yè)每頁(yè)_pagesize?轉(zhuǎn)到?phpfor($i=1;$i=$pa
59、gecount;$i+)echo$i;?inputtype=hiddenname=urlvalue=/頁(yè)1.4.11區(qū)域統(tǒng)計(jì)文件AreaList.php在用戶統(tǒng)計(jì)信息文件里顯示了統(tǒng)計(jì)信息的列表,但這個(gè)列表對(duì)信息的統(tǒng)計(jì)不能一目了然。區(qū)域統(tǒng)計(jì)文件的功能就是按區(qū)域統(tǒng)計(jì)用戶的信息。該文件是由圖1.10中用戶統(tǒng)計(jì)信息頁(yè)面的“點(diǎn)擊查看區(qū)域統(tǒng)計(jì)”連接過(guò)來(lái)傳遞調(diào)查ID參數(shù)。界面如圖1.11所示。圖1.11區(qū)域統(tǒng)計(jì)在調(diào)查類文件vote.inc.php中加入下列代碼:/*功能:按區(qū)域統(tǒng)計(jì)用戶信息*參數(shù):$id調(diào)查ID*返回:數(shù)組*/publicfunctionareaList($id)$sql=SELECTCOU
60、NT(F_ID)ASC,F_USER_AREAFROM.$this-_user;$sql.=WHEREF_ID_VOTE_INFO=$idGROUPBYF_USER_AREA;return$this-select($sql);上面代碼定義了按區(qū)域分組查詢用戶統(tǒng)計(jì)信息表的函數(shù),這個(gè)函數(shù)在區(qū)域統(tǒng)計(jì)文件中被調(diào)用。代碼如下:areaList($_GETid);?調(diào)查管理區(qū)域統(tǒng)計(jì)序號(hào)區(qū)域次數(shù)$value)?1.5調(diào)查顯示模塊調(diào)查顯示模塊的功能是把符合條件的調(diào)查提取并顯示出來(lái)。這里的條件包括是否啟用和是否過(guò)期。調(diào)查顯示界面如圖1.12所示。圖1.12調(diào)查顯示這里需要調(diào)查類文件vote.inc.php里有一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年全球及中國(guó)兒科氣泡加濕器行業(yè)發(fā)展動(dòng)態(tài)及供需前景預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)亞麻木酚素行業(yè)銷售渠道及需求規(guī)模預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)3D打印眼鏡行業(yè)營(yíng)銷動(dòng)態(tài)及未來(lái)盈利預(yù)測(cè)報(bào)告
- 2024-2030年中國(guó)黃連素行業(yè)市場(chǎng)深度調(diào)研及投資前景與投資策略研究報(bào)告
- 2024-2030年中國(guó)鮑魚(yú)果系列食品行業(yè)市場(chǎng)運(yùn)營(yíng)模式及未來(lái)發(fā)展動(dòng)向預(yù)測(cè)報(bào)告
- 2024-2030年中國(guó)高純有色金屬產(chǎn)業(yè)產(chǎn)銷量預(yù)測(cè)及創(chuàng)新融資渠道分析報(bào)告
- 2024-2030年中國(guó)高強(qiáng)高模聚乙烯纖維行業(yè)發(fā)展對(duì)策分析及投資規(guī)劃研究報(bào)告版
- 2024-2030年中國(guó)騎行服市場(chǎng)生產(chǎn)銷售及未來(lái)5發(fā)展趨勢(shì)報(bào)告
- 2024-2030年中國(guó)食品真空包裝機(jī)行業(yè)運(yùn)行現(xiàn)狀及投資策略研究報(bào)告
- 2024-2030年中國(guó)零擔(dān)貨物運(yùn)輸行業(yè)運(yùn)營(yíng)模式規(guī)劃分析報(bào)告
- 國(guó)開(kāi)(甘肅)2024年春《地域文化(專)》形考任務(wù)1-4終考答案
- 檔案整理及數(shù)字化服務(wù)方案(技術(shù)標(biāo) )
- 角的度量 華應(yīng)龍(課堂PPT)
- 公路銑刨機(jī)整機(jī)的設(shè)計(jì)含全套CAD圖紙
- 機(jī)器人學(xué)課程教學(xué)大綱
- 浙江世貿(mào)君瀾酒店集團(tuán)介紹
- GHTF—質(zhì)量管理體系--過(guò)程驗(yàn)證指南中文版
- 鋁及鋁合金焊接作業(yè)指導(dǎo)書(shū)
- 水利工程質(zhì)量與安全監(jiān)督工作實(shí)務(wù)PPT課件
- 放射性口腔粘膜炎的發(fā)病機(jī)制及危險(xiǎn)因素
- 加油站特殊作業(yè)安全管理制度(完整版)
評(píng)論
0/150
提交評(píng)論