Geselecteerde waarden in array, gescheiden door komma

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ty Muus

Ty Muus

20/06/2014 00:54:35
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$datax
= array(204,182,130,178);
$datay = array(533,579,549,309);
?>


Nieuwe situatie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?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?
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 20/06/2014 09:50:57 door - Ariën -
 
PHP hulp

PHP hulp

25/12/2024 03:46:30
 
Erwin H

Erwin H

20/06/2014 08:16:43
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
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.
 
Ivo P

Ivo P

20/06/2014 09:04:33
Quote Anchor link
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
 
Ty Muus

Ty Muus

20/06/2014 14:51:29
Quote Anchor link
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!

Toevoeging op 20/06/2014 17:55:25:

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?

Toevoeging op 20/06/2014 18:34:13:

OPGELOST! Met het volgende genereert hij de grafieken perfect naar de waarden in 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
<?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];
      }
}

?>
 



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.