• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      網(wǎng)絡(luò)在線考試系統(tǒng)中數(shù)據(jù)導(dǎo)入導(dǎo)出的PHP實(shí)現(xiàn)

      2016-11-02 19:24楊鑫
      電腦知識(shí)與技術(shù) 2016年18期
      關(guān)鍵詞:導(dǎo)入

      楊鑫

      摘要:在信息系統(tǒng)的開發(fā)過程中,經(jīng)常要將電子表格導(dǎo)入到網(wǎng)站數(shù)據(jù)庫(kù)表,有時(shí)候還需要將數(shù)據(jù)庫(kù)表中的內(nèi)容導(dǎo)出到Excel電子表格。該文介紹了一種基于PHP的電子表格導(dǎo)入導(dǎo)出技術(shù):將電子表格保存為CSV格式,再讀出每行數(shù)據(jù),分隔每行數(shù)據(jù)為不同的字段,再把字段寫入數(shù)據(jù)庫(kù)表;此外,PHP還提供了寫Excel電子表格的功能。

      關(guān)鍵詞:Excel電子表格;MySql數(shù)據(jù)表;導(dǎo)入;導(dǎo)出

      中圖分類號(hào):TP317 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)18-0091-02

      PHP Implementation of Data Import and Export in the Online Examination System

      YANG Xin

      (Department of Computer Science,Wuhan Polytechnic, Wuhan 430074, China)

      Abstract: In the development process of information system, often need to import the spreadsheet to the website database table, and sometimes also need to export the contents of the database table to Excel electronic form. This paper introduces a kind of based on PHP spreadsheet import and export technology: save the spreadsheet as a file in CSV format, read out data for each line, separating each row of data for different field, then the field is written as a database table; in addition, PHP also provides functionality to write Excel spreadsheet.

      Key words:Excel table; MySQL table; import; export

      本網(wǎng)絡(luò)在線考試系統(tǒng)采用LAMP(Linux+Apache+MySQL+PHP)平臺(tái)。采用B/S架構(gòu),根據(jù)武漢職業(yè)技術(shù)學(xué)院精品資源共享課《管理信息系統(tǒng)開發(fā)》在線考試系統(tǒng)需求,本考試系統(tǒng)支持單選題、多選題、判斷題等客觀題題型,支持將考生信息和試題從Excel中導(dǎo)入到系統(tǒng)(MySQL數(shù)據(jù)庫(kù)),還支持將成績(jī)信息(MySQL數(shù)據(jù)表)導(dǎo)出到Excel電子表格。

      1 從Excel電子表格導(dǎo)入到MySQL數(shù)據(jù)表

      將電子表格Excel導(dǎo)入到MySQL數(shù)據(jù)庫(kù)表。為了最簡(jiǎn)潔地把問題講述清楚,我們以最簡(jiǎn)單的電子表格stu.xls為例,stu.xls中保存中考生的信息,包括學(xué)號(hào)、姓名和成績(jī),其中考前成績(jī)?yōu)榭?,考試結(jié)束后成績(jī)不為空。

      1.1 電子表格轉(zhuǎn)變?yōu)榧兾谋靖袷?/p>

      第一步,使用辦公軟件Excel將電子表格stu.xls另存為stu.csv格式,如圖1所示。CSV格式實(shí)際上是一種以逗號(hào)為分隔的純文本格式,如果使用記事本打開stu.csv文件則顯示為如圖2的純文本格式。

      1.2 純文本文件的分割

      第二步:分割純文本文件stu.csv。因?yàn)樵撐募羌兾谋疚募?,容易想到將該文件分割為不同的行,每一行就是一個(gè)考生信息的記錄(除首行是標(biāo)題信息外)。然后再用逗號(hào)將每一行繼續(xù)分割為不同的字段值。在php中提供了字符串分割函數(shù)explode。該函數(shù)的功能是分割字符串為字符型數(shù)組。例如:執(zhí)行語(yǔ)句$st=explode(“,”,”01,劉備”)后,可以得到$st[0]=”01”,$st[1]=”劉備”。

      關(guān)鍵代碼為:

      $content=file_get_contents("cj.csv");

      $temp = explode("\r\n",$content);

      $content就是文本文件中的內(nèi)容,包含特殊字符回車和換行。因此可以考慮使用回車和換行字符將$content分割為字符型數(shù)組。上面兩行代碼執(zhí)行之后,$temp[0]=”學(xué)號(hào),姓名,成績(jī)”;$tem[1]=”01,劉備”;$temp[2]=”02,關(guān)羽”;$temp[3]=”03,張飛”;$temp[4]=”04,趙云”;

      1.3 繼續(xù)分割記錄,并寫入MySQL數(shù)據(jù)庫(kù)表

      第三步:繼續(xù)分割文本文件的每一行。即分割$temp數(shù)組的每一個(gè)元素。使用逗號(hào)來分割。分割得到的結(jié)果是不同的字段,例如可以得到“01”、“劉備”、“03”、“趙云”等等信息。然后順便寫入到MySQL數(shù)據(jù)庫(kù)表中。關(guān)鍵代碼為:

      $conn=mysql_connect("127.0.0.1","root","root") or die ("connect mysql false");

      mysql_select_db("db_chengji", $conn);

      mysql_query("set names utf8");

      for ($j=1;$j

      {

      $st=explode(",",$temp[$j]);

      $sql3="insert into tb_cj (xuehao,xingming,score) values( '".$st[0]."','".$st[1]."','-1')";

      mysql_query($sql3,$conn);

      }

      上面的代碼,將Excel表中的內(nèi)容分割為多行,每一行保存在數(shù)組$temp中,再將字符型數(shù)組的每一個(gè)元素分割為單個(gè)的字段信息。

      考慮到標(biāo)題無需導(dǎo)入到數(shù)據(jù)庫(kù)表,因此上面的循環(huán)變量$j從1開始(有意跳過0,忽略標(biāo)題信息),再將記錄插入MySQL數(shù)據(jù)表的時(shí)候,將成績(jī)項(xiàng)用字符串-1來填充(-1表示考試前)。

      Excel文件stu.csv導(dǎo)入到數(shù)據(jù)表tb_cj后結(jié)果如圖3所示。

      2 從MySQL數(shù)據(jù)表導(dǎo)出到Excel電子表格

      考試后需要將考生的成績(jī)導(dǎo)出到Excel 文件。導(dǎo)出為Excel文件非常簡(jiǎn)單,只需要把成績(jī)顯示在html的table中,然后在php文件的前面加上下面兩個(gè)語(yǔ)句即可:

      header("Content-type:application/vnd.ms=excel");

      header("Content-Disposition:attachment;filename=cj.xls");

      完整代碼如下:

      <?php

      header("Content-type:application/vnd.ms=excel");

      header("Content-Disposition:attachment;filename=cj.xls");

      $conn=mysql_connect("127.0.0.1","root","root") or die ("connect mysql false");

      mysql_query("set names utf8");

      $db_selected = mysql_select_db("db_chengji", $conn);

      $sql=mysql_query("select * from tb_cj",$conn);

      ?>

      <?php while($info=mysql_fetch_array($sql)){ ?>

      <?php } ?>

      <?php echo "學(xué)生成績(jī)表";?>

      考號(hào)姓名分?jǐn)?shù)
      <?php echo $info[1];?><?php echo $info[2];?><?php echo $info[3];?>

      導(dǎo)出后的Excel文件如圖4所示:

      備注:圖中0分、89分和78分是考試成績(jī),而-1則表示該生沒有參加考試。

      3 結(jié)束語(yǔ)

      關(guān)于導(dǎo)入:可以采用通用式的方法。比如導(dǎo)入考試試題的時(shí)候,有些題目有兩個(gè)選項(xiàng)(判斷題)有些題目是四個(gè)選項(xiàng)(單選題),有些則是五個(gè)選項(xiàng),可以采用文件域打開Excel 文件,并對(duì)打開的文件的數(shù)據(jù)進(jìn)行自動(dòng)判斷,在導(dǎo)入文件中的數(shù)據(jù)進(jìn)行檢測(cè),篩選,等等。

      關(guān)于導(dǎo)出:因?yàn)閔tml中的表格table是可以設(shè)置為各種各樣的,導(dǎo)出后的Excel 文件會(huì)與table表格完全一致,因此,完全可以將最高分、最低分、不及格分?jǐn)?shù)、不及格人數(shù)、平均分,缺考考生姓名等以不同顏色字體顯示出來,還可以詳細(xì)地分析成績(jī)并以餅圖的形式顯示出來,因?yàn)槠?,本文不做介紹。

      參考文獻(xiàn):

      [1] 軟件開發(fā)技術(shù)聯(lián)盟.PHP開發(fā)實(shí)例大全[M].北京:清華大學(xué)出版社,2016.

      [2] 徐康明, 辛洪郁.實(shí)戰(zhàn)突擊PHP項(xiàng)目開發(fā)案例整合[M]. 2版.北京:電子工業(yè)出版社, 2014.

      猜你喜歡
      導(dǎo)入
      淺談高中化學(xué)教學(xué)導(dǎo)入的策略
      高效高中地理課堂的有效構(gòu)建
      如何打造有效的小學(xué)管理工作
      關(guān)于中學(xué)語(yǔ)文“導(dǎo)入”教學(xué)設(shè)計(jì)的幾點(diǎn)思考
      鹤峰县| 象州县| 广河县| 南郑县| 南投市| 嵊泗县| 沐川县| 太仓市| 博湖县| 远安县| 游戏| SHOW| 庆城县| 盐池县| 潜山县| 曲沃县| 巴彦县| 莲花县| 庆云县| 远安县| 新丰县| 天水市| 武清区| 潮州市| 米易县| 彩票| 同仁县| 景宁| 扬中市| 江永县| 衢州市| 六安市| 营山县| 淮安市| 苍梧县| 彭水| 沙洋县| 灵台县| 磐安县| 七台河市| 皮山县|