Forum » Programiranje » Kako ustvariti PHP graf iz MySQL podatkovne baze?
Kako ustvariti PHP graf iz MySQL podatkovne baze?
Črt9 ::
Živjo, rad bi ustvaril enostaven prikaz z grafom s pomočjo PHP-ja, podatke pa bi graf dobil iz že prej ustvarjene podatkovne baze. Zanima me, kateri je najlažji način?
Poskušal sem že z fusioncharts, a mi grafa ni uspelo ustvariti, piše da tip grafa ni podprt. Prosil bi, če mi svetujete
Poskušal sem že z fusioncharts, a mi grafa ni uspelo ustvariti, piše da tip grafa ni podprt. Prosil bi, če mi svetujete
Stari89 ::
Glede na to, da govoriš o PHPju, sklepam, da nameravaš graf "renderirat" na serverju? Najlažji (ampak niti slučajno ne najboljši) način ti bo za vsak podatek narisat en div z višino (recimo
Boljši način bi bil, da vse delaš z Javascriptom na clientu. PHP uporabiš lih tolk, da z GET requestom dobiš nazaj podatke iz baze, nakar vse poštima client. Tako (na prvi pogled) deluje tudi FusionCharts.
AJAX
LP
<div style="height: XYpx;"> </div>), ki je vrednost podatka. Nato vse skupaj oblečeš v ene lepe CSS style in si zmagal. Ena for-zanka, skupaj 10 minut dela.
Boljši način bi bil, da vse delaš z Javascriptom na clientu. PHP uporabiš lih tolk, da z GET requestom dobiš nazaj podatke iz baze, nakar vse poštima client. Tako (na prvi pogled) deluje tudi FusionCharts.
AJAX
LP
smacker ::
O PHPju govori, ker ne loči pojmov
Podatki so v bazi, s PHPjom strežnik dostopa do baze. Želiš, da se prikažejo v brskalniku v uporabniku, torej potrebuješ ustrezno HTML kodo za izris grafa. Da ne odkrivaš tople vode, lahko uporabiš Javascript knjižnico, ki poskrbi za renderiranje grafa. Na rabiš se mučit z AJAXom, lahko v eni zahtevi vse nardiš. V PHPju nafilaš array data z objekti, ki imajo "label" in "value". Tak array lahko z json_encode funkcijo pretvoriš v niz(string) v formatu JSON. Potem pa v JS kodi, ta string izpišeš in pretvoriš v JS objekt:
<?php
$res = mysql_query(...);
$chart_data = array();
while($obj = $res->fetch_object()){
$record = new stdClass;
$record->label = $obj->x;
$record->value = $obj->y;
array_push($chart_data, $record);
}
?>
<html>
<head>
<title>My first chart using FusionCharts Suite XT</title>
<script type="text/javascript" src="fusioncharts/js/fusioncharts.js"></script>
<script type="text/javascript" src="fusioncharts/js/themes/fusioncharts.theme.fint.js"></script>
<script type="text/javascript">
FusionCharts.ready(function(){
var revenueChart = new FusionCharts({
"type": "column2d",
"renderAt": "chartContainer",
"width": "500",
"height": "300",
"dataFormat": "json",
"dataSource": {
"chart": {
"caption": "Monthly revenue for last year",
"subCaption": "Harry's SuperMart",
"xAxisName": "Month",
"yAxisName": "Revenues (In USD)",
"theme": "fint"
},
"data": JSON.parse(<?php echo json_encode($chart_data); ?>);
}
});
revenueChart.render();
})
</script>
</head>
<body>
<div id="chartContainer">FusionCharts XT will load here!</div>
</body>
</html>
Zgodovina sprememb…
- spremenil: smacker ()
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | jquery ajax problemOddelek: Izdelava spletišč | 1617 (1239) | miko22 |
| » | [php] preverjanje online uporabnikovOddelek: Programiranje | 2261 (1917) | cobrica |
| » | Masterpage in jQuery(ajax call)Oddelek: Programiranje | 1479 (1307) | hatchette |
| » | PHP ASPOddelek: Izdelava spletišč | 3307 (2632) | MrBrdo |
| » | java v javascript?Oddelek: Programiranje | 2189 (1892) | boss-tech |