blob: c74620fce9b8ac7cdfe89fb678d0c0a2c4ed8a55 [file] [log] [blame]
==================================
eZ Components - GraphDatabaseTieIn
==================================
.. contents:: Table of Contents
:depth: 2
Introduction
============
The GraphDatabaseTieIn allows you to directly display results from a database
query in a graph using ezcGraph. All data represented in PDOStatements, for
example returned by the database component, can be displayed.
Class overview
==============
This section gives you an overview of the most important classes.
ezcGraphDatabaseDataSet
Extends the ezcGraphDataSet to read data from a PDOStatement and prepare it
for the usage as a dataset in the graph component.
Setup
=====
For the examples we expect a simple database setup, so that we are able to
test our examples. For this we create a table with some statistical data to be
used in the graphs.
.. include:: tutorial/tutorial_insert_data.php
:literal:
We first include the common autoload file to set up the autoload for
eZ Components. Then, in line 5, we connect to a SQLite memory database, we
later fill up with some data representing a random browser statistic. The
usage idescription of PDO__ and the `database component`__ can be found at
the dedicated documentation pages.
__ http://php.net/PDO
__ ../Database/tutorial.html#introduction
Usage
=====
Default behaviour
-----------------
To create a simple pie chart we just select the data and add a new dataset,
created from the resulting statement, to a new chart.
.. include:: tutorial/tutorial_simple.php
:literal:
The query builder we use to create the select query in line 8 to 10 is
described in detail in the `database components documentation`__. In this
example all values from the columns hits and browser are selected from the
table browser_hits. The result of the query is available in $statement after
the query was executed. The $statement object is an instance of the
PDOStatement class.
__ ../Database/tutorial.html#introduction
The creation of charts is described in detail in the `graph components
documentation`__. In this example we create a simple pie chart, set a title
for the chart and add a new dataset. To directly use a PDOStatement as a data
source an instance of ezcGraphDatabaseDataSet is created with the $statement
as the first parameter. By default the first column is used as index and the
second column as values for the indices. The result is the pie chart we
expected.
__ Graph/tutorial.html#introduction
.. image:: img/tutorial_simple.svg.png
:alt: Simple pie chart example
Single column
-------------
.. include:: tutorial/tutorial_simple.php
:literal:
When only a single column is returned by the select query the values are
considered as a zero indexed array. This might be useful to display them in
line or bar charts.
The created data set may be used in the same way like all other data sets,
which can be seen in line 20 in the example above, where a average polynomial
data set is created from the database data set. More documentation on average
datasets can be found in the `graph tutorial`__.
__ ../Graph/tutorial.html#average-polynomial-dataset
.. image:: img/tutorial_single.svg.png
:alt: Line chart example
Multiple columns
----------------
You also may specify which column should be used as a key and which column
should be used as a value in the created dataset. This is particulary useful
when dealing with more then two columns.
.. include:: tutorial/tutorial_multiple.php
:literal:
In this example all columns from the table are selected using the \*, but the
array starting in line 21 defines which columns are used for keys and values.
There are two array keys, which are constants defined in ezcGraph, referencing
the name of the column to use.
PDO by default lowercases all column names, see `PDO::setAttribute()`__ for
details. If the column names you pass to the dataset definition array are not
lowercase, you either need to change the PDO::ATTR_CASE attribute of your PDO
connection instance, or lowercase the names passed to the definition array.
Otherwise this will throw ezcGraphDatabaseMissingColumnException exceptions.
Starting at line 28 we change the renderer and enhance the output a bit. This
is described in more detail in the `3D renderer section`__ in the graph
tutorial.
__ http://php.net/manual/en/pdo.setattribute.php
__ ../Graph/tutorial.html#id2
.. image:: img/tutorial_multiple.svg.png
:alt: Pie chart from multiple columns
More information
================
For more information, see the GraphDatabaseTieIn API documentation.
..
Local Variables:
mode: rst
fill-column: 79
End:
vim: et syn=rst tw=79