2009-08-21 14 views
12

Hallo Ich versuche, Daten zu erstellen, die von MySQL-Datenbank abrufen flicht Diagramm zu erstellen kann mich jemand durch dieses Verfahren gehen oder geben Sie mir eine Vorstellung davon, was dankDaten aus MySQL Abrufen von php flicht Graph

+0

an welchem ​​Punkt genau benötigen Sie Hilfe ich nehme an, Sie wissen im Grunde, wie die Daten zu extrahieren von dem Datenbank? – JorenB

+0

ya ich weiß, wie man die Daten extrahiert, aber wie man den Flot erstellt – Sarah

+0

Nach dem Abrufen des Arrays, was soll ich tun – Sarah

Antwort

21

Sie wollen wahrscheinlich so etwas. Ich habe Flot nicht verwendet, aber ich schaute auf das Beispiel 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

Hallo, ich habe getan, wie Sie sagten, aber es funktioniert nicht, gibt es eine Ausnahme $ Dataset1 = array(); \t while ($ row = mysql_fetch_assoc ($ sql)) \t { \t \t DataSet1 $ [] = array ($ row [ 'MsgCount'], $ row [ 'Group_ID']); \t} echo json_encode ($ Datensatz1); jquery \t Funktion plotGraph() \t { \t \t alert ("In body"); \t \t $ Schnipsel ({ \t \t \t url: "getData.php", \t \t \t Typ: "post", \t \t \t Datentyp: "json", \t \t \t Erfolg: Funktion (Daten) \t \t \t {alert (Daten); \t \t \t $ .plot ($ ("# Platzhalter"), [Daten]); \t \t} \t \t \t Fehler: function() \t \t \t {alert ("ein Problem Es gab");} \t \t}) \t} gibt es etwas fehlt – Sarah

+0

Hey Tom Dieses Beispiel wirklich hilfreich war, aber Jetzt habe ich ein Problem mit der Behandlung der Null, weil es nicht geplottet – Sarah

+0

@Sarah: Ich nehme an, Sie könnten sie auf Null konvertieren - entweder in der Abfrage e, g IFNULL (colName, 0) oder in Ihrer PHP-Schleife durch Gießen jeden Wert zu einer ganzen Zahl. –

0

zu tun Dies hängt weitgehend von Ihrer Umgebung und Ihren Anforderungen ab. Es gibt viele kostenlose Tools, die Sie verwenden können. Ein Beispiel ist Flot, mit dem Sie jQuery zum Erstellen von Diagrammen verwenden können. Auf der Google Code-Seite finden Sie einen Link zur Dokumentation.

2

Hinzufügen bei dem Beispiel von @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

Kam darüber hinweg. Ich versuche nur, es zur Arbeit zu bringen. Ich denke, Sie vermissen ein '$' vor 'query'. Auch die Variable $ db wird nur einmal referenziert. Ist das richtig? Das obige wird sich sowieso nicht ausbreiten. Würde etwas Hilfe lieben :) –

2

als @ Tom Haigh sagen Arbeit gut, aber Sie müssen einen anderen Code hinzuzufügen, um gut zu funktionieren, ich das Beispiel wurde, aber ich entdecke in es der Quellcode zu dem Ergebnis hinzufügen zitiert "so einfach, dies zu vermeiden, die hinzuzufügen: intval auf das Array, Beispiel:

<?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'])); 
    } 
?>