2009-08-21 68 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'])); 
    } 
?>