Beste iedereen,

Ik heb een script waarmee ik een grafiek kan plotten, maar tot nu toe is het de bedoeling dat je de waarden voor de x en y assen handmatig invult, maar ik zie het graag dynamisch.

Uit de url haalt hij het grafieknummer waar hij een grafiekje voor moet produceren, hij maakt een selectie uit de db, en moet de coordinaten (getallen) gescheiden door een komma printen.
Als in de oude situatie.

DB ziet er zo uit:
"Maps"
id - grafieknummer - xcoor - ycoor

Oude situatie:

<?php
$datax = array(204,182,130,178);
$datay = array(533,579,549,309);
?>


Nieuwe situatie:

<?php
$grafieknummer = $_GET['id'];
$query1 = mysql_query("SELECT xcoor FROM maps WHERE grafieknummer LIKE '$grafieknummer'") or die (mysql_error());
$datax = implode(",", $query1);
print_r($datax);
$query2 = mysql_query("SELECT ycoor FROM maps WHERE grafieknummer LIKE '$grafieknummer'") or die (mysql_error());
$datay = implode(",", $query2);
print_r($datay);
?>



Het rammelt nog aan alle kanten. Stippen geeft hij gek genoeg wel weer. Kan iemand mij vertellen hoe ik onderstaande het beste uit kan schrijven?
Ten eerste, gebruik geen LIKE in je query als je geen wildcards nodig hebt. Daarnaast kan je alle gegevens in 1 keer uit de database halen en ook nog eens direct in het goede formaat:

SELECT GROUP_CONCAT(xcoor) AS xcoor, GROUP_CONCAT(ycoor) AS ycoor
FROM maps
WHERE grafieknummer = ...

Als resultaat krijg je nu 1 rij terug met daarin alle xcoordinaten in 1 veld gescheiden door komma's en alle ycoordinaten in 1 veld gescheiden door komma's.
is het misschien nog nutting om de coordinaten in een bepaalde volgorde terug te krijgen?

En bijvoorbeeld ook dat group_concat() dan ZEKER dezelfde volgorde hanteert voor de X en de Y
Thanks Erwin! Die group_concat is inderdaad nog veel handiger!

De output moet in ieder geval wel met beide variabelen $datax en $datay zijn (anders geeft hij de melding "Empty input data array specified for plot"), als in het voorbeeld. Lukt dat wel als je alles in één keer op wil vragen?

Ivo: elke column heeft een waarde, die in dezelfde row staat, als het goed is dan moet hij ze ook in de juiste volgorde weergeven. Maar misschien is sorteren op id nog niet eens zo'n rare!

[size=xsmall]Toevoeging op 20/06/2014 17:55:25:[/size]

De melding die ik nu krijg is "Check that the data is really specified as numeric data and not as strings."

Klaarblijkelijk werkt dit grafiekplottertje van JPGraph niet met strings, wat kan ik dan het beste doen?

[size=xsmall]Toevoeging op 20/06/2014 18:34:13:[/size]

OPGELOST! Met het volgende genereert hij de grafieken perfect naar de waarden in de database:

<?php
$grafieknummer = $_GET['id'];
$datax = array();
$datay = array();
$query = "SELECT xcoor, ycoor FROM maps WHERE grafieknummer = '$grafieknummer'";
if ($result = mysql_query($query)) {
while($data = mysql_fetch_array($result, MYSQL_NUM)) {
$datax[] = $data[0];
$datay[] = $data[1];
}
}
?>

Reageren