2009-08-21 33 views
12

嗨,我想從MySQL數據庫檢索數據,創建海軍報圖 任何人都可以走在我通過這個程序或者給我做什麼 感謝通過PHP檢索從MySQL數據創建海軍報圖

+0

在什麼時候正是你需要幫助我假定你基本上知道如何提取數據來自數據庫? – JorenB 2009-08-21 14:36:53

+0

雅我知道如何提取數據,但如何創建flot – Sarah 2009-08-21 14:45:23

+0

獲取數組後,我該怎麼辦 – Sarah 2009-08-21 14:46:04

回答

21

你可能想要這樣的東西。我沒有使用flot,但我看了一下here的例子。

<?php 
//create array of pairs of x and y values 
$dataset1 = array(); 
while ($row = mysql_fetch_assoc()) { //or whatever 
    $dataset1[] = array($row['xvalue'], $row['yvalue']); 
} 
?> 

<script type="text/javascript"> 
    //put array into javascript variable 
    var dataset1 = <?php echo json_encode($dataset1); ?>; 

    //plot 
    $(function() { 
     $.plot($("#placeholder"), [ dataset1 ]); 
    }); 
</script> 
+0

嗨,我照你說的做,但它不工作有一個例外 $ dataset1 = array(); \t而($行= mysql_fetch_assoc($ SQL)) \t { \t \t $數據集1 [] =陣列($行[ 'MSGCOUNT'],$行[ 'GROUP_ID']); \t} echo json_encode($ dataset1); 的jquery \t功能plotGraph() \t { \t \t警報( 「以體」); \t \t $阿賈克斯({ \t \t \t網址: 「訪問getdata.php」, \t \t \t類型: 「後」, \t \t \t數據類型: 「JSON」, \t \t \t成功:功能(數據) \t \t \t {警報(數據); \t \t \t $ .plot($( 「#佔位符」),[數據]); \t \t}, \t \t \t錯誤:函數() \t \t \t {警報( 「有問題」);} \t \t}) \t} 是有缺什麼 – Sarah 2009-08-25 07:44:07

+0

嘿湯姆這個例子是真正有用的,但現在我面臨一個處理null的問題,因爲它沒有繪製 – Sarah 2009-08-27 09:08:57

+0

@Sarah:我想你可以將它們轉換爲零 - 無論是在查詢e,g IFNULL(colName,0)還是在PHP循環中,通過轉換每個值到一個整數。 – 2009-08-27 09:48:43

0

的想法這很大程度上取決於您的環境和要求。有很多免費的工具可以使用。一個例子是Flot,它允許您使用jQuery來構建圖形。鏈接到Google代碼頁上的文檔。

2

@Tom Haigh添加於例如:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Flot Examples</title> 
    <link href="layout.css" rel="stylesheet" type="text/css"> 
    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]--> 
    <script language="javascript" type="text/javascript" src="../jquery.js"></script> 
    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script> 
</head> 
    <body> 
    <h1>Flot Examples</h1> 

    <div id="placeholder" style="width:600px;height:300px;"></div> 

<?php 

$server = "localhost"; 
    $user="user"; 
    $password="password"; 
    $database = "some_database"; 

    $connection = mysql_connect($server,$user,$password); 
    $db = mysql_select_db($database,$connection); 

query = "SELECT x_axis_values, y_axis_values FROM some_table"; 
    $result = mysql_query($query);   

    while($row = mysql_fetch_assoc($result)) 
    { 
     $dataset1[] = array($row['x_axis_value'],$row['y_axis_value']); 
    } 

?> 


<script type="text/javascript"> 
$(function() { 
    var dataset1 = <?php echo json_encode($dataset1); ?>; 

    $.plot($("#placeholder"), [ dataset1 ]); 
}); 
</script> 

</body> 
</html> 
+0

遇到此問題。試圖讓它工作。我認爲你在'query'前面缺少'$'。另外變量'$ db'只被引用一次。是對的嗎?以上內容無論如何都不會傳播。會愛一些幫助:) – 2013-10-18 17:21:20

2

爲@湯姆黑格說的工作很好,但你需要添加另一個代碼工作得很好,我用的例子,但我在發現源代碼,將其添加到結果引號「所以要避免這個只需添加:INTVAL到陣列,例如:

<?php 
$query = "SELECT valx, valy FROM chart"; 
    $result = mysql_query($query);   

    while($row = mysql_fetch_assoc($result)) 
    { 
     $d2[] = array (intval($row['valx']),intval($row['valy'])); 
    } 
?>