10. november 2005 - 16:15
Der er
5 kommentarer og
1 løsning
En lille syntaks ting: Række fra query ind i array som streng
Jeg har stort set fået PHP programmet PHPlot, som tegner grafer, til at virke.
Fx tre aldersgrupper 0-29, 30-59, 60-89 ud af x-axen, og på y-axen deres antal i befolkningen i 1900, 1950, 2000.
Bortset fra, at jeg ikke kan få skrevet aldergrupperne under x-axen - min fornemmelse for PHPs syntaks svigter...
I en MySQL query er denne her linie i en while løkke:
$data[] = array('label',$row[1],$row[2],$row[3]);
$row[1], [2] og [3] bliver til y-værdierne (aldergrupperne), 3 søjler over hver aldersgruppe på x-axen.
Problemet er så: På x-axen skal der mærkes med tallene 0-29, 30-59, 60-89, jf. 'label', og de skal hentes fra $row[0] (hvor de faktisk er, kan godt printes alene).
Hvordan får jeg $row[0] ind som label i 'label'?
Det går ikke at skrive
$data[] = array('$row[0]',$row[1],$row[2],$row[3]); - så kommer der blot til at stå $row[0] under x-axen for hvert talsæt.
10. november 2005 - 16:18
#2
Hvorfor har du en quote omkring dette:
data[] = array('$row[0]',$row[1],$row[2],$row[3]);
Burde det ikke bare være
data[] = array($row[0],$row[1],$row[2],$row[3]);
eller er der noget i dit system jeg har misforstået?
10. november 2005 - 16:29
#3
Det er programmet PHPlot, som angiver det. Der kan vælges mellem forskellige slags datasæt, og det, der hedder text-data har på første plads 'label' (imellem enkelte '), som skal bruges, når det ikke er en "normal" x-værdi, man har med at gøre (men fx som her et interval). Pladserne derefter angiver y-værdierne.
Skrevet helt ud, kunne et exempel være:
$data = array(
array('Jan', 40, 2, 4), array('Feb', 30, 3, 4), array('Mar', 20, 4, 4),
array('Apr', 10, 5, 4), array('May', 3, 6, 4), array('Jun', 7, 7, 4),
array('Jul', 10, 8, 4), array('Aug', 15, 9, 4), array('Sep', 20, 5, 4),
array('Oct', 18, 4, 4), array('Nov', 16, 7, 4), array('Dec', 14, 3, 4),
);
Problemet er så, at jeg gerne vil bruge MySQL til at hente data ud, og 'label' skal så bygge på $row[0].
Der er en anden datatype, data-data, hvor $data[] = array('label', $row[0],$row[1],$row[2],...); - hvor $row[0] (eller rettere første plads efter 'label' er en bestemt x-værdi, og de næste pladser igen y-værdier.
10. november 2005 - 16:31
#4
man kan også lade 'label' stå tom som '' - vil typisk være tilfældet i den sidst nævnte datatype data-data, hvor der jo eksplicit angives en bestemt x-værdi på 2. plads i array'et.
text-data: array('label', y1, y2,...)
data-dat: array('label', x, y1, y2,...)
10. november 2005 - 20:09
#5
Har fået det til at virke ved at udelade '' omkring plads for label...
$data[] = array($row[0],$row[1],$row[2],$row[3],$row[4],$row[5]); - er fin, synes bare ikke, det virkede i første omgang.
Point bromer? du ledte mig mindst på vej!