2009-08-21 40 views
12

Hi tôi đang cố gắng để lấy dữ liệu từ cơ sở dữ liệu mysql để tạo flot graph ai cũng có thể đi bộ tôi qua thủ tục này hoặc cho tôi một ý tưởng về những việc cần làm nhờLấy dữ liệu từ mysql bằng php để tạo ra đồ thị flot

+0

Tại điểm chính xác nào bạn cần trợ giúp? Tôi cho rằng bạn biết cơ bản cách trích xuất dữ liệu từ cơ sở dữ liệu? – JorenB

+0

ya tôi biết cách trích xuất dữ liệu nhưng cách tạo flot – Sarah

+0

Sau khi tìm nạp mảng tôi nên làm gì – Sarah

Trả lời

21

Bạn có thể muốn một cái gì đó như thế này. Tôi đã không sử dụng flot nhưng tôi nhìn vào ví dụ 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

Xin chào tôi đã làm như bạn đã nói nhưng không hoạt động có ngoại lệ $ dataset1 = array(); \t while ($ row = mysql_fetch_assoc ($ sql)) \t { \t \t $ dataset1 [] = array ($ row [ 'msgCount'], $ row [ 'GROUP_ID']); \t} echo json_encode ($ dataset1); jquery \t chức năng plotGraph() \t { \t \t alert ("Trong cơ thể"); \t \t $ .ajax ({ \t \t \t url: "getData.php", \t \t \t loại: "bài", \t \t \t datatype: "json", \t \t \t thành công: function (data) \t \t \t {alert (dữ liệu); \t \t \t $ .plot ($ ("# giữ chỗ"), [dữ liệu]); \t \t}, \t \t \t lỗi: function() \t \t \t {alert ("Có vấn đề");} \t \t}) \t} là có cái gì đó thiếu – Sarah

+0

Hey Tom Ví dụ này là thực sự hữu ích nhưng bây giờ tôi đang đối mặt với một vấn đề xử lý null bởi vì nó không được vẽ theo số – Sarah

+0

@Sarah: Tôi cho rằng bạn có thể chuyển đổi chúng thành 0 - hoặc trong truy vấn e, g IFNULL (colName, 0) hoặc trong vòng lặp PHP của bạn bằng cách truyền mỗi giá trị đến một số nguyên. –

0

Điều này phụ thuộc phần lớn vào môi trường và yêu cầu của bạn. Có rất nhiều công cụ miễn phí trên mạng mà bạn có thể sử dụng. Một ví dụ là Flot cho phép bạn sử dụng jQuery để tạo biểu đồ. Có liên kết đến tài liệu trên trang Google Code.

2

Thêm vào ví dụ từ @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

Đến đây. Chỉ cần cố gắng làm cho nó hoạt động. Tôi nghĩ rằng bạn đang thiếu một '$' từ trước 'truy vấn'. Ngoài ra biến '$ db' chỉ được tham chiếu một lần. Có đúng không? Ở trên sẽ không tuyên truyền anyway. Sẽ yêu một số trợ giúp :) –

2

như @ Tom Haigh nói công việc tốt, nhưng bạn cần phải thêm mã khác để làm việc tốt, tôi đã sử dụng ví dụ này, nhưng tôi phát hiện trong mã nguồn nó thêm vào dấu ngoặc kép kết quả "để tránh điều này chỉ cần thêm: intval vào mảng, ví dụ:

<?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'])); 
    } 
?> 
Các vấn đề liên quan