2016-02-17 54 views
4

我想構建一個圖表,我需要從MySQL數據庫表中將數據提取到JavaScript變量中,該變量的格式如下:var variable1 = [[1, 19], [2, 11], [3, 14], [4, 16]]。在我的圖表上,第一個數字(列)變成x,第二個數字是。我在MySQL數據庫中的表看起來像這樣(我簡化了一下):如何從JavaScript數據庫中獲取數據來構建圖表?

column1 column2 
    1  19 
    2  11 
    3  14 
    4  16 

最簡單的方法是什麼?我對此很陌生,請原諒我詢問可能是一個非常簡單的問題。


編輯:

隨着Wartus的回答我編碼如下的幫助。 我做了兩個文件:帶JavaScript的HTML和一個PHP文件。這是我的HTML文件:

<html> 
<head> 
    <title>Title</title> 
    <link rel="stylesheet" type="text/css" href="css/common.css" /> 
    <script language="javascript" type="text/javascript" src="flot/jquery.js"></script>  <!-- jQuery library --> 
    <script language="javascript" type="text/javascript" src="flot/jquery.flot.js"></script> <!-- Library with charts that I plan to use --> 
    <script type="text/javascript"> 

    $.ajax({ 
     url : 'serv.php', // my php file 
     type : 'GET', // type of the HTTP request 
     success : function(result){ 
      var obj = jQuery.parseJSON(result); 
      console.log(obj); 
     } 
    }); 

    </script> 
</head> 
<body> 
Hi 
</body> 
</html> 

這是我命名serv.php是位於同一目錄中的HTML文件PHP文件:

<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "datadb"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT column1, column2 FROM chartdata"; //This is where I specify what data to query 
    $result = $conn->query($sql); 
    echo json_encode($result); 
?> 

這一切似乎是工作沒有錯誤,除了當我檢查控制檯時發出空值:

Object {current_field: null, field_count: null, lengths: null, num_rows: null, type: null} 

我在做什麼錯?

+1

您似乎在要求某人爲您編寫一些代碼。堆棧溢出是一個問答網站,而不是代碼寫入服務。請參閱[這裏](http://stackoverflow.com/help/how-to-ask)來學習如何編寫有效的問題。 請提供一些代碼,你嘗試過並且不能正常工作 – nakashu

+0

嘗試使用'json_encode',然後你就可以很容易地在JavaScript中使用 – Nergal

+0

任何人都可以幫助我解決這個問題嗎?它已被擱置,我不知道我能做些什麼來改善它。 –

回答

3

之後,你有讓您在您的數據庫中選擇你要返回JSON格式的答案(對我來說我也只是做一個值爲5的陣列進行測試):

你的PHP文件(我是SERV。 php):

$data = array([1, 19], [2, 11], [3, 14], [4, 16]); 
// replace $data by your code to select in DB 
echo json_encode($data); 

現在你必須在你的javascript代碼中得到響應。要做到這一點,你必須做(在我的情況的jQuery)在JavaScript或jQuery的一個「GET」要求:

這是您的js文件:

$.ajax({ 
    url : 'serv.php', // your php file 
    type : 'GET', // type of the HTTP request 
    success : function(data){ 
     var obj = jQuery.parseJSON(data); 
     console.log(obj); 
    } 
}); 

而且在obj你有你的數據:

enter image description here

所以,現在你有你的數據訪問,是一個數組,那麼:

- obj[0] contains [1, 19], obj[0][0] contains 1 and obj[0][1] contains 19 
- obj[1] contains [2, 11], obj[1][0] contains 2 and obj[1][1] contains 11 ... 

在你的情況,variable1相同obj

編輯 有了您的DB:

之前發送的答案,你必須正確地建立自己的數據。所以在你的情況下,你有一個多維數組,當我在名爲data的數組中推入數組時,我所做的就是這樣。

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "datadb"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT column1, column2 FROM chartdata"; //This is where I specify what data to query 
$result = mysqli_query($conn, $sql); 

$data = array(); 
while($enr = mysqli_fetch_assoc($result)){ 
    $a = array($enr['column1'], $enr['column2']); 
    array_push($data, $a); 
} 

echo json_encode($data); 
相關問題