Получить данные из mysql с помощью php для создания графика флотации

Привет, я пытаюсь получить данные из базы данных mysql, чтобы создать график флота. Может ли кто-нибудь провести меня через эту процедуру или дать мне представление о том, что делать, спасибо


person Sarah    schedule 21.08.2009    source источник
comment
В какой именно момент вам нужна помощь? Я предполагаю, что вы в основном знаете, как извлекать данные из базы данных?   -  person JorenB    schedule 21.08.2009
comment
я знаю, как извлечь данные, но как создать флот   -  person Sarah    schedule 21.08.2009
comment
После получения массива что мне делать   -  person Sarah    schedule 21.08.2009


Ответы (4)


Вы, наверное, хотите что-то вроде этого. Я не использовал флот, но посмотрел пример здесь.

<?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>
person Tom Haigh    schedule 21.08.2009
comment
Привет, я сделал, как вы сказали, но это не работает, есть исключение $dataset1 = array(); while ($row = mysql_fetch_assoc($sql)) { $dataset1[] = array($row['msgCount'], $row['Group_ID'] ); } эхо json_encode($dataset1); функция jquery plotGraph () { предупреждение (в теле); $.ajax({ url:getData.php, тип:сообщение, тип данных:json, успех:функция(данные) {предупреждение(данные); $.plot($(#placeholder), [данные]); }, ошибка: function() {alert(возникла проблема);} }) } чего-то не хватает - person Sarah; 25.08.2009
comment
Привет, Том. Этот пример был действительно полезным, но теперь я столкнулся с проблемой обработки нуля, потому что он не отображается на графике. - person Sarah; 27.08.2009
comment
@Sarah: Я полагаю, вы могли бы преобразовать их в ноль - либо в запросе, например, IFNULL ( colName, 0 ), либо в вашем цикле PHP, приведя каждое значение к целому числу. - person Tom Haigh; 27.08.2009
comment
Спасибо за это, у меня были проблемы с переносом json из php в flot, и это сработало отлично. - person going; 04.12.2009

Добавляя пример из @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>
person John M    schedule 29.11.2011
comment
Наткнулся на это. Просто пытаюсь заставить его работать. Я думаю, что вам не хватает $ перед query. Также на переменную $db ссылаются только один раз. Это правильно? Вышеупомянутое не будет распространяться в любом случае. Хотелось бы помощи :) - person square_eyes; 18.10.2013

как говорит @Tom Haigh, работает хорошо, но вам нужно добавить еще один код, чтобы работать хорошо, я использовал пример, но я обнаружил в исходном коде, что он добавляет к кавычкам результата, поэтому, чтобы избежать этого, просто добавьте: 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']));
    }
?>
person Skylex    schedule 26.07.2012

Это во многом зависит от вашей среды и требований. Существует множество бесплатных инструментов, которые вы можете использовать. Одним из примеров является Flot, который позволяет использовать jQuery для построения графиков. На странице кода Google есть ссылка на документацию.

person Steven Surowiec    schedule 21.08.2009