2009-08-21 9 views
12

Hi próbuję pobrać dane z bazy danych MySQL do tworzenia flot wykres ktoś może mi chodzić po tej procedurze lub dać mi pomysł, co zrobić dziękiPobieranie danych z MySQL przez PHP do tworzenia flot wykres

+0

w jakim momencie dokładnie potrzebujesz pomocy Zakładam, że wiem w zasadzie jak wyodrębnić dane z Baza danych? – JorenB

+0

ya wiem, jak wyodrębnić dane, ale jak utworzyć flot – Sarah

+0

Po pobraniu tablicy, co powinienem zrobić – Sarah

Odpowiedz

21

Prawdopodobnie chcesz coś takiego. Nie użyłem flota, ale spojrzałem na przykład: 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

Hi zrobiłem, jak powiedziałeś, ale to nie działa, jest wyjątek $ dataset1 = array(); \t while ($ wiersz = mysql_fetch_assoc ($ SQL)) \t { \t \t $ DataSet1 [] = array ($ wiersz [ 'msgCount'] $ wiersz [ 'group_id']); \t} echo json_encode ($ dataset1); jQuery \t funkcja plotGraph() \t { \t \t alert ("W korpusie"); \t \t $ .ajax ({ \t \t \t url: "getData.php" \t \t \t typu: "post", \t \t \t typ danych: "json", \t \t \t success: function (data) \t \t \t {alert (dane); \t \t \t $ .plot ($ ("# zastępczy") [dane]); \t \t}, \t \t \t error: function() \t \t \t {alert ("Wystąpił błąd");} \t \t}) \t} jest coś brakuje – Sarah

+0

Hej Tom Ten przykład był bardzo pomocny, ale teraz mam do czynienia z problemem obsługi wartości zerowej, ponieważ nie jest ona narysowana – Sarah

+0

@Sarah: Przypuszczam, że możesz przekonwertować je na zero - w zapytaniu e, g IFNULL (colName, 0) lub w pętli PHP przez rzutowanie każdej wartości do liczby całkowitej. –

0

To zależy w dużym stopniu od twojego środowiska i wymagań. Istnieje wiele bezpłatnych narzędzi, z których możesz skorzystać. Jednym z przykładów jest Flot, który pozwala używać jQuery do tworzenia wykresów. Jest link do dokumentacji na stronie Google Code.

2

Dodanie na przykład z @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

Przeniosło się przez to. Po prostu próbuję go uruchomić. Myślę, że brakuje '' '' przed 'zapytaniem'. Również zmienna '$ db' jest przywoływana tylko raz. Czy to prawda? Powyższe nie będzie jednak propagować. Chciałbym trochę pomóc :) –

2

jak @Tom Haigh powiedzieć pracę dobrze, ale trzeba dodać kolejny kod działa dobrze, używałem przykład, ale odkryć w kod źródłowy to dodać do wyniku cytuje ", więc aby tego uniknąć wystarczy dodać: intval do tablicy, przykład:

<?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'])); 
    } 
?> 
Powiązane problemy