[Echarts可视化] 二.php和ajax连接数据库实现动态数据可视化
這篇文章主要結合PHP、MySQL、JQuery和Ajax從數據庫中獲取數據,動態的顯示值,這是實現真正可視化的技術入,可以應用于實際的項目中。基礎性文章,希望對您有所幫助,如果文章中存在不足之處,還請海涵~
參考文章:ECharts, PHP, MySQL, Ajax, JQuery 實現前后端數據可視化
? ? ? ? ? echarts+php+mysql 繪圖實例 - 謙一
? ? ? ? ? PHP+echarts讀取地圖數據
該篇文章代碼下載地址:
一. 回顧Echarts繪制直方圖
Echarts官網地址:http://echarts.baidu.com/index.html
注意:基礎知識參考前一篇文章,這篇文章主要是代碼為主,整個流程都是詳細的。同時發現,準備寫這篇文章的時候,“純臻”大神也寫了篇類似的,但依然有不同的地方可能對你有所幫助。
Echarts代碼 test01.html
二. 創建數據庫
創建數據庫hcpmanage,再創建表guizhou,包括序號、地名、數量三個字段。
如下所示:
三. PHP連接數據庫及Json傳值
PHP連接數據庫的核心代碼大家非常熟悉了,下面這段代碼簡單包括了Json取值。
sql.php文件:
注意訪問地址為:http://localhost:8080/20170224YXZ/sql.php,文件放到Apache的htdocs目錄下。所有文件如下圖所示:
四. Ajax動態實現Echarts可視化
test02.html代碼如下:
<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>ECharts</title><!-- 引入 echarts.js --><script src="echarts.min.js"></script><script src="jquery-1.9.1.min.js"></script> </head> <body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于準備好的dom,初始化echarts實例var myChart = echarts.init(document.getElementById('main'));// 初始化兩個數組,盛裝從數據庫中獲取到的數據var places=[], nums=[];function TestAjax(){$.ajax({type: "post",async: false, //異步執行url: "sql.php", //SQL數據庫文件data: {}, //發送給數據庫的數據dataType: "json", //json類型success: function(result) {if (result) {for (var i = 0; i < result.length; i++) {places.push(result[i].place);nums.push(result[i].num);console.log(result[i].place);console.log(result[i].num);}}}})return places, nums;}//執行異步請求TestAjax();// 指定圖表的配置項和數據var option = {title: {text: 'ECharts+Ajax+MySQL+PHP'},tooltip: {show : true},legend: {data:['數量']},xAxis: [{//data: ["貴陽市","遵義市","凱里市","六盤水市","都勻市","畢節市"]type : 'category',data : places}],yAxis: {type : 'value'},series: [{name : "數量",type : "bar",data : nums}]};// 使用剛指定的配置項和數據顯示圖表。myChart.setOption(option);</script><marquee>Eastmount 璋 love 娜!!!</marquee> </body> </html> 運行結果如下圖所示,這是動態調用的可視化結果。其中Ajax核心代碼為:
var places=[], nums=[];function TestAjax(){$.ajax({type: "post",async: false, //異步執行url: "sql.php", //SQL數據庫文件data: {}, //發送給數據庫的數據dataType: "json", //json類型success: function(result) {if (result) {for (var i = 0; i < result.length; i++) {places.push(result[i].place);nums.push(result[i].num);console.log(result[i].place);console.log(result[i].num);}}}})return places, nums;}//執行異步請求TestAjax(); 同時,瀏覽器中檢查元素可以對Ajax的值進行測試輸出,調用console.log函數。如下圖所示:
數據動態變化,數據庫變了,可視化圖也變化:
五. 難點及注意事項
初學的同學可能會遇到一下幾個問題:
1.其中Echarts和JQuery需要導入的,即:
? ? <script src="echarts.min.js"></script>
? ? <script src="jquery-1.9.1.min.js"></script>
2.Echarts使用的方法請大家學習前一篇文章和官網文章,這里不再敘述。
3.PHP文件需要header("content-type:text/json;charset=utf-8");聲明Json格式,同時Ajax也需要設置dataType: "json"。
4.聲明的Ajax函數需要執行,對應代碼中的TestAjax(),否則只是定義未執行。
5.如果Ajax報錯 [object Object],如下圖所示:
這需要Json格式一致,而我的錯誤是因為在PHP文件中增加了個注釋導致無值,百度都無法解決,頭都弄大了,所以寫代碼需要仔細。
6.最后動態數據是通過變量實現的,即ages替換以前的 [5, 20, 36, 10, 10, 20]。
? ? ? ? ? ? series : [ {
? ? ? ? ? ? ? ? ? ?name : "num",
? ? ? ? ? ? ? ? ? ?type : "bar",
? ? ? ? ? ? ? ? ? ?data : ages
? ? ? ? ? ? }]
最后希望這篇文章對你有所幫助,尤其是對Echarts可視化感興趣的同學,同樣Java、C#、Python相關網站的原理一樣,代碼也會上傳 。最近心情真的好低落,哎!有時間寫日記總結下吧。
? ? ? ? 穩坐珠江夜游船,翻轉長隆水世界。
? ? ? ? 笑談粵廣風流人,寧負天下不負卿。
哎!總是心事重重,自己真的有太多的不足和需要成長的地方,以前總會知足,現在也會。哎!為人處世真需要一輩子去學習,且寫且珍惜吧,傳遞正能量。
(By:Eastmount 2017-06-02 中午2點 ? http://blog.csdn.net/eastmount/ ?)
總結
以上是生活随笔為你收集整理的[Echarts可视化] 二.php和ajax连接数据库实现动态数据可视化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python数据挖掘课程】十四.Sci
- 下一篇: 【python数据挖掘课程】十五.Mat