Grafiek doet het niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arjen van Putten

Arjen van Putten

06/06/2007 17:06:00
Quote Anchor link
Hallo daar,

Ik probeer door middel van een standaard script een grafiek te genereren van gegevens uit mijn database.

De input zou je in dit stukje moeten invullen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
require('chart.php');

$data = array(41,43,46,52,59,63,65,66,65,64,62,60,57,56,53,50,48);
$chart = new chart(300, 200, "example1");
$chart->plot($data);
$chart->stroke();
?>


De array wil ik nu vullen met gegevens uit mijn database. Ik dacht dit op de volgende manier te kunnen doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?

include('../connect.php');

$query_5 = mysql_query("SELECT ratio1 FROM pot WHERE deelnemer1_id = '2'");

while ($record = mysql_fetch_object($query_5)) {
    
    $data[] = $record->ratio1;
    
}



require('chart.php');

$chart = new chart(500, 200);
$chart->plot($data);
$chart->set_title("Gemiddelde ratio");
$chart->set_labels("dag", "ratio");
$chart->set_margins(50,10,20,35);
$chart->stroke();

?>


Het plaatje wordt op deze manier alleen niet geladen. Met <img src="grafiek.php"> geef ik aan waar de gegevens vandaan moeten worden gehaald (in grafiek.php staat dus ook het bovenstaand script).

Het script doet het steeds tot dat ik gegevens uit de database ga halen en in een variabele zet, ook al gebruik ik deze niet eens. Weet iemand wat ik moet doen om dit script werkend te krijgen?
Gewijzigd op 01/01/1970 01:00:00 door Arjen van Putten
 
PHP hulp

PHP hulp

16/06/2024 08:06:19
 
Arjen van Putten

Arjen van Putten

06/06/2007 19:19:00
Quote Anchor link
Heeft er niemand een idee?
 
Jorik

Jorik

06/06/2007 20:06:00
Quote Anchor link
Probeer eens je script zonder dat je het plaatje wilt maken. Kijk dan naar evt. errors. Probeer daarna nog eens de grafiek te maken, en laat even zien waar het fout gaat. Misschien is ook chart.php wel niet goed, of gebruik jij het verkeerd.
 
Arjen van Putten

Arjen van Putten

06/06/2007 23:19:00
Quote Anchor link
Als ik dat doe krijg ik allemaal vage tekens terug :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
PNG  &#65533;&#65533;&#65533; IHDR&#65533;&#65533;,&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;/4&#65533;&#65533;&#65533; PLTE&#65533;&#65533;&#65533;sh&#65533;&#65533;IDATx8%,I=wE,Zha:m*f Z$C/Zqh y/M^`m,8YoV,YU -+UUL}6 hA'k , FlnV3'+V/x%q 16Y&cZ-H:4iY9>S5klZ yt2x, 3ekO*`"or|YbEkk3(uJE{yt9z^9BSc(a]yFbE9L>rui1[lkF|(3![X&#65533;Vhuu%-bl}dA?Y=&&kWo4V6nF^,+^3VkE_Xc7TkZTZ;V!<{2}cemYy|[myZksM-VLEsBN{CToH3tX H+Xp^"EuWy.Ti4V:3mz>MzzqJ8uz=z?-"9qz}wxm ;Z oRc]X;(4{QZ'4)Z,%K{SGUP ;plbw&#65533;&#65533;&#65533;&#65533;IENDB`



Dit denk ik omdat hij hier een png wil opbouwen.

Het probleem zit hem denk ik alleen niet in het script chart.php, maar in de array $data.

Als ik het standaard script gebruik (het bovenste script) met dan genegeerd hij keurig de grafiek. Maar zodra ik de array wil vullen met gegevens uit de database gaat het mis.

Ik heb het script hier vandaan:
http://www.byte.nl/docs/Php-Grafieken.html
Gewijzigd op 01/01/1970 01:00:00 door Arjen van Putten
 
Arjen van Putten

Arjen van Putten

07/06/2007 10:04:00
Quote Anchor link
Ik heb het eens met een ander script geprobeerd, deze heeft een betere errorreporting.

Bij deze doet het standaard script het ook:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include ( "../jpgraph.php");
include ("../jpgraph_line.php");

// Some data
$ydata  = array(11,3, 8,12,5 ,1,9, 13,5,7 );

// Create the graph. These two calls are always required
$graph  = new Graph(350, 250,"auto");    
$graph->SetScale( "textlin");

// Create the linear plot
$lineplot =new LinePlot($ydata);
$lineplot ->SetColor("blue");

// Add the plot to the graph
$graph->Add( $lineplot);

// Display the graph
$graph->Stroke();
?>


maar zodra ik de array weer wil gaan vullen met gegevens uit de database:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
<?php
include('../connect.php');

$query_5 = mysql_query("SELECT * FROM pot WHERE deelnemer1_id = '2'");

while ($record = mysql_fetch_object($query_5)) {
    
    $ydata[] = $record->ratio1;
    
}


include ( "jpgraph.php");
include ("jpgraph_line.php");



// Some data
//$ydata  = array(11,3, 8,12,5 ,1,9, 13,5,7 );

// Create the graph. These two calls are always required

$graph  = new Graph(350, 250,"auto");    
$graph->SetScale( "textlin");

// Create the linear plot
$lineplot =new LinePlot($ydata);
$lineplot ->SetColor("blue");

// Add the plot to the graph
$graph->Add( $lineplot);

// Display the graph
$graph->Stroke();

?>


Krijg ik de volgende foutmelding:

JpGraph Error: HTTP headers have already been sent.
Caused by output from file connect.php at line 5.

Explanation:
HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).

Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser.

For example it is a common mistake to leave a blank line before the opening "
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php".
 
Jacco Engel

Jacco Engel

07/06/2007 10:07:00
Quote Anchor link
Lijkt me vrij helder
 
Arjen van Putten

Arjen van Putten

07/06/2007 10:18:00
Quote Anchor link
ja alleen hoe krijg ik nou gegevens uit mijn database in de array?
 
Jacco Engel

Jacco Engel

07/06/2007 10:20:00
Quote Anchor link
$query = "SELECT * FROM table" ;
$result = mysql_query($query) ;
while ($rij = mysql_fetch_assoc($result))
{
$array[] = $rij ;
}



???????

Ps: Zet die includes voor de gein eens voor je while inplaats van erna (en update de code als je deze hebty aangepast, debuggen kan al lasting genoeg zijn, laat staan achterhaalde code)
 
Arjen van Putten

Arjen van Putten

07/06/2007 16:34:00
Quote Anchor link
Er zat een spatie na het afsluiten van php in het bestand connect.php. Hierdoor kreeg ik de foutmelding! 8)

Bedankt voor de reacties!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.