The following example will create an area chart (it is very similar to the example Chart2.htm).
It will retrieve the data from an MSAccess database that contains a table called "salesMonth". This
table has three fields: "Products" (integer), "Services" (integer) and "salesMonth" (date), which
contains the sales for several months. The files are attached to this example for download.
The example will display the sales of the last 6 months. It will create a HTML page that contains
the applet. Most of the parameters of the applet are constant, however the date labels and the
sales data is retrieved from the DB.
This example was tested on windows. If you want to try to make it work on Unix or Linux platforms
you will need a way to access the mdb file. Try at : http://mdbtools.sourceforge.net/.
<!-- **** VARIABLE DATA, use Php to retrieve series data values from database ****
-->
<?php
$labels="";
$values2="";
$values1="";
$i=1;
/* connect to database
open db using a System ODBC data source called "Data" */
$odbcid = odbc_connect ("data", "", "", "");
/* get sales data, execute SQL*/
$resultid = odbc_exec ($odbcid, "Select * from SalesMonth Order by salesMonth DESC") ;
/* iterate on sales data, up to 6 rows */
while (($i <= 6) and (odbc_fetch_row($resultid))) {
/* concatenate | separator */
if ($i>1) {
$values1= "|" . $values1;
$values2= "|" . $values2;
$labels= "|" . $labels;
}
$i=$i+1;
/* next record */
odbc_fetch_row($resultid);
}
/* echo values for serie 1 */
echo "<PARAM NAME = \"SERIE_DATA_1\" VALUE = \"";
echo $values1;
echo "\">";
/* echo values for serie 2 */
echo "<PARAM NAME = \"SERIE_DATA_2\" VALUE = \"";
echo $values2;
echo "\">";
/* echo values for labels */
echo "<PARAM NAME = \"XAXIS_LABELS\" VALUE = \"";
echo $labels;
echo "\">";
/* close result */
odbc_free_result($resultid);
/* close connection */
odbc_close($odbcid);
?>
<!-- **** CONSTANT DATA **** -->
<PARAM NAME = "TITLECHART" VALUE = "Sales 1999">
<PARAM NAME = "LEGEND" VALUE = "TRUE">
<PARAM NAME = "XLABEL" VALUE = "Month">
<PARAM NAME = "YLABEL" VALUE = "Million $">
<PARAM NAME = "SERIE_1" VALUE = "Services">
<PARAM NAME = "SERIE_2" VALUE = "Products">
<PARAM NAME = "SERIE_STYLE_1" VALUE = "0.2|0x663300|LINE">
<PARAM NAME = "SERIE_STYLE_2" VALUE = "0.2|0x99|LINE">
<PARAM NAME = "SERIE_FILL_1" VALUE = "RED">
<PARAM NAME = "SERIE_FILL_2" VALUE = "0x99cc">
<PARAM NAME = "SERIE_FONT_1" VALUE = "Arial|PLAIN|8">
<PARAM NAME = "SERIE_FONT_2" VALUE = "Arial|PLAIN|8">
<PARAM NAME = "SERIE_POINT_1" VALUE = "true">
<PARAM NAME = "SERIE_POINT_2" VALUE = "true">
<PARAM NAME = "SERIE_TYPE_1" VALUE = "LINE">
<PARAM NAME = "SERIE_TYPE_2" VALUE = "LINE">
<PARAM NAME = "CHART_BORDER" VALUE = "0.2|BLACK|LINE">
<PARAM NAME = "CHART_FILL" VALUE = "LIGHTGRAY">
<PARAM NAME = "BIG_TICK_INTERVALX" VALUE = "1">
<PARAM NAME = "BIG_TICK_INTERVALY" VALUE = "1">
<PARAM NAME = "YSCALE_MIN" VALUE = "0">
<PARAM NAME = "TICK_INTERVALY" VALUE = "100">
<PARAM NAME = "LEGEND_BORDER" VALUE = "0.2|BLACK|LINE">
<PARAM NAME = "LEGEND_FILL" VALUE = "WHITE">
<PARAM NAME = "XAXIS_TICKATBASE" VALUE = "true">
<PARAM NAME = "XAXIS_TICKATBASE" VALUE = "true">
<PARAM NAME = "BACK_IMAGE" VALUE = "back13.gif">
</APPLET>
</BODY>
</HTML>
You can also work with MySQL :
==============================
Steps:
1. Upload rchart.jar to your server
2. Execute the Mysql scripts to create the table in MySql
3. execute the php script.
SCRIPTS FOR MYSQL
CREATE TABLE j4l_example_SalesMonth (
id int(11) DEFAULT '0' NOT NULL,
salesMonth date DEFAULT '0000-00-00' NOT NULL,
Product int(11) DEFAULT '0' NOT NULL,
Services int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);
#
# Dumping data for table 'j4l_example_SalesMonth'
#
/* get sales data, execute SQL*/
$resultid = mysql_query("Select salesMonth,Product,Services from j4l_example_SalesMonth Order by
salesMonth DESC") or die("Failed: sql");
/* iterate on sales data, up to 6 rows */
$numrows = mysql_num_rows($resultid);
while (($i <= 6) and ($i < $numrows)) {
/* echo values for serie 1 */
echo "<PARAM NAME = \"SERIE_DATA_1\" VALUE = \"";
echo $values1;
echo "\">";
/* echo values for serie 2 */
echo "<PARAM NAME = \"SERIE_DATA_2\" VALUE = \"";
echo $values2;
echo "\">";
/* echo values for labels */
echo "<PARAM NAME = \"XAXIS_LABELS\" VALUE = \"";
echo $labels;
echo "\">";
/* close connection */
mysql_close($db);
?>
<!-- **** CONSTANT DATA **** -->
<PARAM NAME = "TITLECHART" VALUE = "Sales 1999">
<PARAM NAME = "LEGEND" VALUE = "TRUE">
<PARAM NAME = "XLABEL" VALUE = "Month">
<PARAM NAME = "YLABEL" VALUE = "Million $">
<PARAM NAME = "SERIE_1" VALUE = "Services">
<PARAM NAME = "SERIE_2" VALUE = "Products">
<PARAM NAME = "SERIE_STYLE_1" VALUE = "0.2|0x663300|LINE">
<PARAM NAME = "SERIE_STYLE_2" VALUE = "0.2|0x99|LINE">
<PARAM NAME = "SERIE_FILL_1" VALUE = "RED">
<PARAM NAME = "SERIE_FILL_2" VALUE = "0x99cc">
<PARAM NAME = "SERIE_FONT_1" VALUE = "Arial|PLAIN|8">
<PARAM NAME = "SERIE_FONT_2" VALUE = "Arial|PLAIN|8">
<PARAM NAME = "SERIE_POINT_1" VALUE = "true">
<PARAM NAME = "SERIE_POINT_2" VALUE = "true">
<PARAM NAME = "SERIE_TYPE_1" VALUE = "LINE">
<PARAM NAME = "SERIE_TYPE_2" VALUE = "LINE">
<PARAM NAME = "CHART_BORDER" VALUE = "0.2|BLACK|LINE">
<PARAM NAME = "BIG_TICK_INTERVALX" VALUE = "1">
<PARAM NAME = "BIG_TICK_INTERVALY" VALUE = "1">
<PARAM NAME = "YSCALE_MIN" VALUE = "0">
<PARAM NAME = "TICK_INTERVALY" VALUE = "100">
<PARAM NAME = "LEGEND_BORDER" VALUE = "0.2|BLACK|LINE">
<PARAM NAME = "LEGEND_FILL" VALUE = "WHITE">
<PARAM NAME = "XAXIS_TICKATBASE" VALUE = "true">
<PARAM NAME = "XAXIS_TICKATBASE" VALUE = "true">
<PARAM NAME = "CHART_FILL" VALUE = "0xffcc00">
<PARAM NAME = "CHART_SHOW_POSITION" VALUE = "true">
</APPLET>
</BODY>
</HTML>
Sarah King wrote :969
This is a good example but really it`s just promoting a tool you have to purchase before you can use the example. Stinks of spam!
Boaz Yahav wrote :970
I was thinking the same thing before i approved this example. I usually don`t approve exampled that promote any business but this one looks like something developers might use. After all, the examples here come to server as help to get things done so there is also an informative side to this example.
Lets wait and see what others think so i know what to do in the future.
Nicolay Vasiliev wrote :972
It does nothing new in comparing of JpGraph http://www.aditus.nu/jpgraph/index.php