2009-08-21 4 views
12

Salut je suis en train de récupérer les données de base de données MySQL pour créer graphique Flot quelqu'un peut me promener dans cette procédure ou me donner une idée de ce qu'il faut faire grâceextraient des données de MySQL par PHP pour créer graphique Flot

+0

à quel moment exactement vous besoin d'aide, je suppose que vous savez fondamentalement comment extraire les données du base de données? – JorenB

+0

ya je sais comment extraire les données mais comment créer le flot – Sarah

+0

Après avoir récupéré le tableau que dois-je faire – Sarah

Répondre

21

Vous voulez probablement quelque chose comme ça. Je n'ai pas utilisé le flot mais j'ai regardé l'exemple 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

Salut j'ai fait comme vous l'avez dit mais il ne fonctionne pas il y a une exception $ dataset1 = array(); \t while ($ file = mysql_fetch_assoc ($ sql)) \t {\t \t dataset1 $ [] = array ($ row [ 'msgCount'], $ row [ 'group_id']); \t} echo json_encode ($ dataset1); jquery \t fonction plotGraph() { \t \t \t alert ("Dans le corps"); \t \t .ajax $ ({ \t \t \t url: "getData.php", \t \t Type \t: "post", \t \t \t type de données: "JSON", \t \t \t succès: function (données) \t \t \t {alert (données); \t \t \t .plot $ ($ ("espace réservé #"), [données]); \t \t}, \t \t \t erreur: function() \t \t \t {alert ("Il y avait un problème");} \t \t}) \t} est là quelque chose qui manque – Sarah

+0

Hey Tom Cet exemple était vraiment utile, mais Maintenant je suis confronté à un problème de manipulation du null car il n'est pas tracé – Sarah

+0

@Sarah: Je suppose que vous pouvez les convertir à zéro - soit dans la requête e, g IFNULL (colName, 0) ou dans votre boucle PHP en jetant chaque valeur à un entier. –

0

Cela dépend en grande partie de votre environnement et de vos exigences. Il y a beaucoup d'outils gratuits que vous pouvez utiliser. Un exemple est Flot qui vous permet d'utiliser jQuery pour créer des graphiques. Il y a un lien vers la documentation sur la page de code Google.

2

Ajouter à l'exemple de @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

Entré à travers cela. J'essaie juste de le faire fonctionner. Je pense qu'il vous manque un '$' devant la 'query'. De plus, la variable '$ db' n'est référencée qu'une seule fois. Est-ce correct? Ce qui précède ne se propagera pas de toute façon. J'adorerais de l'aide :) –

2

comme disent bien Haigh @ Tom travail, mais vous devez ajouter un autre code pour bien travailler, j'utilisais l'exemple, mais je découvre dans le code source, il ajoute au résultat cite "afin d'éviter ce suffit d'ajouter le: intval au tableau, par exemple:

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