[PHP]Dynamische grouped grafiek jpgraph

Pagina: 1
Acties:
  • 134 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil aan de hand van mijn database een bargrafiek met informatie van meerdere datums plotten. Nu maak ik een tweedimensionale array die ik vul met de gegevens tussen de twee opgegeven data:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$result = mysql_query("SELECT DATEDIFF('$varDatum2', '$varDatum1')");
$aantalDagen = mysql_result($result,0);
echo "$aantalDagen";
$sql = mysql_query("SELECT COUNT(*) spu, HOUR(Tijd), Datum FROM Log WHERE Datum BETWEEN '$varDatum1' AND '$varDatum2' AND Code = '$varcode' GROUP BY HOUR(Tijd)") or die(mysql_error());

if($row = mysql_fetch_array($sql))
{
    $werkDatum = $row[2];
    for($dag = 0; $dag <= $aantalDagen; $dag++)
    {
        for($i = 0; $i <= 23; $i++)
        {
            if($row[1] == $i && $row[2] == $werkDatum)
            {
                $AlleData[$dag][$i] = $row[0];
                $row = mysql_fetch_array($sql);
            }
            else
                $AlleData[$aantalDagen][$i] = 0;
        }
        $werkDatum = $row[2];
    }
}
else
{
    echo "Tussen deze datums is geen data verkrijgbaar";
}

Maar vervolgens weet ik niet hoe ik jpgraph variabel de grafieken laat tekenen aan de hand van die tweedimensionale array. Ik was iets in deze trend aan het proberen:
code:
1
2
3
4
5
6
7
8
9
for($a = 0; $a <= aantalDagen; $a++);
{
    for($x = 0; $x <= 23; $x++)
    {
        $xdata[$x] = $AlleData[$a][$x];
    }
    $b1plot = new BarPlot($xdata);
    $b1plot->SetFillColor("orange");
}

Alleen moet die b1plot en de kleur hier zowieso nog variabel... En als ik xdata echo komt er ook niet echt uit wat ik verwacht :S iemand een iedee wat ik verkeerd doe en hoe het wel moet?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Alleen moet die b1plot en de kleur hier zowieso nog variabel...
Lijkt me geen probleem? Gewoon een extra index opnemen, bijvoorbeeld $AlleData[$a]['kleur'].
En als ik xdata echo komt er ook niet echt uit wat ik verwacht
Wat komt er dan wel uit? Lijkt me vrij essentiële info. ;) Verder: $xdata zelf kun je niet echo-en, want dat is een array. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Deze krijg ik zon 24 x
Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\grafiek.php on line 68
en deze 1x
JpGraph Error The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)
regel 68 =
code:
1
$xdata[$x] = $AlleData[$a][$x];

[ Voor 10% gewijzigd door Verwijderd op 02-05-2005 16:05 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Vervang die regel en de for lus die eromheen staat eens door dit:
PHP:
1
$xdata = $AlleData[$a];

Doe daarna ook eens een print_r($xdata) om te kijken of er wel in staat wat je nodig hebt. Zie ook P&W FAQ - Leer **** debuggen!!. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05 22:30

FendtVario

The leader drives Vario!

offtopic:
en schaamteloos reclame maken. Deze is makkelijker als jpgraph ;)

[ Voor 23% gewijzigd door FendtVario op 03-05-2005 10:33 ]

www.fendt.com | Nikon D7100 | PS5


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thanks voor de reacties tot dusver, alleen nu zit ik nog te klooien om der barplots variabel aan te maken. In mn voorbeeld documentatie declareren ze elke balk los, maar ik wil een variabel aantal barplots.

voobeeld code van jpgraph:
code:
1
2
3
4
5
6
7
8
// Create the bar plots
$b1plot = new BarPlot($data1y);
$b1plot->SetFillColor("orange");
$b2plot = new BarPlot($data2y);
$b2plot->SetFillColor("blue");

// Create the grouped bar plot
$gbplot = new GroupBarPlot(array($b1plot,$b2plot));


Ik heb al geprobeerd gewoon een array te maken waarin de pos 0 een barplot was en pos 1 ook, maar dat ging niet goed.. Misschien deed ik het wel verkeerd, maarja zo goed ben ik niet in php...

Weet iemand een manier om dit te doen?
Pagina: 1