Echarts 是一個基于 JavaScript 的可視化庫,用于制作各種動態和靜態的圖表。它提供了豐富的 API,可以方便地定制化各種圖表。而 MySQL 是一個開源的關系型數據庫管理系統,支持多種操作系統平臺。在實際生產環境中,我們通常需要將數據從數據庫中提取出來,并將其用于制作數據可視化的圖表。下面我們將介紹如何使用 Echarts 對接 MySQL 數據庫。
首先,我們需要在前端部分使用 Ajax 進行異步數據交互。我們可以在前端使用 JavaScript 的 XMLHttpRequest 對象發起請求,獲取到服務器返回的數據后再將其傳遞到 Echarts 中進行可視化處理。以下是一段基本的 Ajax 請求代碼。
var xmlhttp; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 瀏覽器執行代碼 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var result = xmlhttp.responseText; // 獲取到服務器返回的數據 // 將result 傳參到 Echarts 中進行可視化處理 } } xmlhttp.open("GET","getData.php",true); // 發起 GET 請求,從服務器獲取數據 xmlhttp.send();
在 PHP 中,我們可以使用 mysqli 擴展面向對象方式來對接 MySQL 數據庫。連接 MySQL,查詢指定的數據庫,獲取數據并將其返回給前端。以下是一段示例代碼。
connect_errno) { echo "Failed to connect to MySQL: " . $mysqli ->connect_error; exit(); } $sql = "SELECT * FROM tableName"; // 查詢指定表中的所有數據 $result = $mysqli ->query($sql); $data = array(); // 定義一個數組保存查詢結果 if ($result ->num_rows >0) { while($row = $result ->fetch_assoc()) { $data[] = $row; } } echo json_encode($data); // 將查詢結果轉為 JSON 格式后返回給前端 ?>
在前端部分,我們可以使用 Echarts 的接口將獲取到的數據傳入,生成各種數據可視化圖形。例如,以下是一段簡單的代碼可以生成一個餅圖。
var chartDom = document.getElementById('chart'); var myChart = echarts.init(chartDom); var option; option = { title: { text: '餅圖示例' }, tooltip: { trigger: 'item', formatter: '{a}
{b}: {c} (bzdt7xx%)' }, legend: { orient: 'vertical', left: 10, data: ['數據1', '數據2', '數據3', '數據4', '數據5'] }, series: [ { name: '數據', type: 'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, emphasis: { label: { show: true, fontSize: '30', fontWeight: 'bold' } }, labelLine: { show: false }, data: [ {value: 335, name: '數據1'}, {value: 310, name: '數據2'}, {value: 234, name: '數據3'}, {value: 135, name: '數據4'}, {value: 1548, name: '數據5'} ] } ] }; myChart.setOption(option);
以上是一個簡單的 Echarts 對接 MySQL 的示例。實際生產環境中,我們需要考慮更加復雜的數據查詢和可視化需求,以及安全性和性能等問題。