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šč | 1472 (1094) | miko22 |
» | [php] preverjanje online uporabnikovOddelek: Programiranje | 2062 (1718) | cobrica |
» | Masterpage in jQuery(ajax call)Oddelek: Programiranje | 1346 (1174) | hatchette |
» | PHP ASPOddelek: Izdelava spletišč | 3013 (2338) | MrBrdo |
» | java v javascript?Oddelek: Programiranje | 2053 (1756) | boss-tech |