Je souhaite utiliser NVD3.js http://nvd3.org/ghpages/lineWithFocus.html mais je ne saisi pas comment l'utiliser avec mes données MySQL.
Depuis une base MySQL, je pense que le mieux est d'utiliser JSON (votre avis?) :
$connexion = new PDO('mysql:host=localhost;dbname=MABASE', 'USER', 'PASSWORD');
$connexion->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$connexion->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
$connexion->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
$connexion->setAttribute(\PDO::ATTR_CASE, \PDO::CASE_LOWER);
$data=$connexion->query('SELECT date, value FROM matable` ORDER BY date ASC');
while( $resultat = $data->fetch() )
{
$rows['value'][] = $resultat;
}
print json_encode($rows);
$jsondata=json_encode($rows);
J'obtiens en gros :
Je sais que le code dois commencer de la sorte :{"value":[{"date":"2013-10-01","value":"685"},{"date":"2013-10-02","value":"521"},{"date":"2013-10-03","value":"54521"},{"date":"2013-10-04","value":"8484"},{"date":"2013-10-05","value":"84841"},{"date":"2013-10-06","value":"123"},{"date":"2013-10-07","value":"56"}]}
<!DOCTYPE html>
<meta charset="utf-8">
<link href="novuschart/src/nv.d3.css" rel="stylesheet" type="text/css">
<style>
body {
overflow-y:scroll;
}
text {
font: 12px sans-serif;
}
svg {
display: block;
}
#chart1 svg {
height: 500px;
min-width: 100px;
min-height: 100px;
/*
margin: 50px;
Minimum height and width is a good idea to prevent negative SVG dimensions...
For example width should be =< margin.left + margin.right + 1,
of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
*/
}
</style>
<body>
<div id="chart" class='with-3d-shadow with-transitions'>
<svg style="height: 500px;"></svg>
</div>
<script src="novuschart/lib/d3.v3.js"></script>
<script src="novuschart/nv.d3.js"></script>
<script src="novuschart/src/tooltip.js"></script>
<script src="novuschart/src/utils.js"></script>
<script src="novuschart/src/models/legend.js"></script>
<script src="novuschart/src/models/axis.js"></script>
<script src="novuschart/src/models/scatter.js"></script>
<script src="novuschart/src/models/line.js"></script>
<script src="novuschart/src/models/lineWithFocusChart.js"></script>
<script src="novuschart/stream_layers.js"></script>
mais la suite bloque, l'exemple et le génerateur http://nvd3.org/livecode/#codemirrorNav indiquent :[javascript]
<script>
nv.addGraph(function() {
var chart = nv.models.lineWithFocusChart();
chart.xAxis
.tickFormat(d3.format(',f'));
chart.yAxis
.tickFormat(d3.format(',.2f'));
chart.y2Axis
.tickFormat(d3.format(',.2f'));
d3.select('#chart svg')
.datum(testData())
.transition().duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
</script>
[/javascript]
puis une génerateur de data, comment y mettre mon JSON??
function testData() {
return stream_layers(3,128,.1).map(function(data, i) {
return {
key: 'Stream' + i,
values: data
};
});
}
Merci et bonne nuit!!!