resultaat naar Array
wat is het probleem:
In mijn database staab wedstrijden met bezoekers aantallen
ik doe een
attendence heeft dan als resultaat 10200,10056,14009,9889,10008,10340,10129..........
guestteam heeft dan als resultaat zwo,utr,aja,twe,fey............
Code (php)
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
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
Dit resultaat wil ik met jpgraph in een bargraph zetten
daarbij doe ik:
<?php
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY = array($record[attendence]);
$valueX = array($record['guestteam']);
}
echo $valueY.'<br>';
echo $valueX;
?>
dit geeft als resultaat
14273
gra
Maar ik wil graag:
("10200","10056","14009","9889","10008","10340","10129","....)
en ("zwo","utr","aja","twe","fey","........)
hebben
welicht is het antwoord/oplossing heel simpel maar is zit even vast :-(
daarbij doe ik:
<?php
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY = array($record[attendence]);
$valueX = array($record['guestteam']);
}
echo $valueY.'<br>';
echo $valueX;
?>
dit geeft als resultaat
14273
gra
Maar ik wil graag:
("10200","10056","14009","9889","10008","10340","10129","....)
en ("zwo","utr","aja","twe","fey","........)
hebben
welicht is het antwoord/oplossing heel simpel maar is zit even vast :-(
Code (php)
En dan ga ik er verder vanuit dat je weet hoe te werken met arrays (en loops) en dat print_r dus alleen voor de demo is.
Gewijzigd op 31/07/2013 15:19:05 door Erwin H
bedankt voor je reactie.
Maar ...ik snap dus geen bal van hoe ik de data uit mijn kolommen attendence en guestteam in de $valueX[] en $valueY[] krijg
Gisteren had ik wel "iets" wat er op leek, maar dat zag er zo uit
(1020010056140099889100081034010129)
en
(zwoutrajatwefey)
dus geen separator tussen de waardes
IK ben nu even de weg kwijt :-(
mysql_* is trouwens deprecated, niet gebruiken! En je kunt altijd var_dump proberen om uit te vogelen wat je moet doen om waarden te vinden
Dit is een waarde toevoegen aan een array:
Wat begrijp je dan nog niet?
Na afloop van je while loop is $valueX een array met daarin alle waardes uit de kolom attendance.
Klopt, nu heb ik inderdaad data in de array staan:
Array ( [0] => 10200 [1] => 10056 [2] => 14009 [3] => 9889 [4] => 10008 [5] => 10340 [6] => 10129 [7] => 9134 [8] => 10938 [9] => 8254 [10] => 8298 [11] => 11857 [12] => 12140 [13] => 10577 [14] => 10330 [15] => 10000 [16] => 11231 )
Array ( [0] => rkc [1] => gro [2] => aja [3] => utr [4] => wii [5] => aza [6] => psv [7] => zwo [8] => nec [9] => rod [10] => nac [11] => hee [12] => her [13] => vit [14] => twe [15] => vvv [16] => fey )
maar ik snap nog niet hoe ik de inhoud van de array naar het gewenste formaat
("10200","10056","14009","9889","10008","10340","10129","....) kan krijgen
Code (php)
(*Met implode kan je ongetwijfeld ook van alles doen...)
Gewijzigd op 31/07/2013 16:33:14 door Kris Peeters
Code (php)
Maar als je het naar JSON wil hebben, (weet ik veel), gebruik dan json_encode() op je $valueX / $valueY.
Ronde haken is geen json. Een json array heeft vierkante haken en een json object heeft accolades. Waarom er dus ronde haken nodig zijn is nu even onduidelijk....
Behalve dat JSON met vierkante haakjes werkt.
----
Okay, misschien een beetje flauw, maar dit zou ook kunnen werken
Code (php)
1
2
3
4
2
3
4
<?php
$json = json_encode($valueY);
echo str_replace(']', ')', str_replace('[', '(', $json));
?>
$json = json_encode($valueY);
echo str_replace(']', ')', str_replace('[', '(', $json));
?>
Gewijzigd op 31/07/2013 16:52:40 door Kris Peeters
Maar zoals gemeld wil ik het resultaat van de query gebruiken op met JPGRAPH een bargraph te maken
de waarde uit $valueX en $valueY wil daarvoor gebruiken
Code (php)
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
35
36
37
38
39
40
41
42
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
35
36
37
38
39
40
41
42
$result_homeattendence =mysql("select
{query}
);
$valueX = array();
$valueY = array();
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY[] = $record['attendence'];
$valueX[] = $record['guestteam'];
}
echo '("' . implode('","', $valueY) . '")';
echo '("' . implode('","', $valueX) . '")';
// Create the graph. These two calls are always required
$graph = new Graph(550,220,'auto');
$graph->SetScale("textlin");
$graph->SetBox(false);
//$graph->ygrid->SetColor('gray');
$graph->ygrid->SetFill(false);
$graph->xaxis->SetTickLabels($dataY);
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);
// Create the bar plots
$b1plot = new BarPlot($dataX);
// ...and add it to the graPH
$graph->Add($b1plot);
$b1plot->SetColor("black");
$graph->title->Set("Bezoekersaantallen");
// Display the graph
$graph->Stroke();
even kleine probleem schet
In een mysql database heb ik de table matches
Deze bevat (o.a.) deze kolomen met waarde:
matchid guest attendence
1 VIT 10200
3 PSV 10056
5 RKC 14009
7 VVV 9889
9 NEC 10008
11 UTR 10340
13 NAC 10129
15 HER 9134
17 ROD 10938
19 AZA 8254
21 EXC 8298
23 HEE 11857
25 AJA 12140
27 TWE 10577
29 GRO 10330
31 FEY 10000
33 GRA 11231
NU wil ik heel graag met JPGRAPH er een bargraph van maken
daarvoor moeten de kolomen om gezet worden naar:
Code (php)
De laatste dagen heb ik met van geexpirimeteerd en geprobeerd met IMPLODE, GROUP_CONCAT functies etc etc maar ik kom er niet uit.
Als ik dan denk de $dataY goed te hebben om dan een
op het scherm de juiste output geeft, zegt JPGRAPH iets van"cannot generate grap becaus x or y do not contain value"
Dus helup :-|
Mar kla op 31/07/2013 14:54:32:
Maar ik wil graag:
("10200","10056","14009","9889","10008","10340","10129","....)
en ("zwo","utr","aja","twe","fey","........)
hebben
("10200","10056","14009","9889","10008","10340","10129","....)
en ("zwo","utr","aja","twe","fey","........)
hebben
Eddy E op 31/07/2013 16:44:32:
Dit geeft toch precies wat jij zoekt.
Quote:
("10200","10056","14009","9889","10008","10340","10129","....)
is echter helemaal niets. Het is in php geen array of andere data structuur, in javascript niet en in JSON niet. Met andere woorden: de TS zal eerst een duidelijk voorbeeld moeten geven van wat hij echt nodig heeft voor hij geholpen kan worden. Moet het in php, javascript of json zijn, wat is de benodigde input voor die JPGRAPH etc?
Zo gaat het in elk geval nooit tot een oplossing komen.
Code (php)
echoot wel :
(10200","10056","14009","9889","10008","10340","10129","9134","10938","8254","8298","11857","12140","10577","10330,10000,11231);
("VIT","PSV","RKC","VVV","NEC","UTR","NAC","HER","ROD","AZA","EXC","HEE","AJA","TWE","GRO","FEY","GRA);
maar ik kan geen
doen
Daarbij komt dat van JPGRAPH je de getallen alleen met een , en tekst met enkel ' moet aanleveren
Code (php)
Nu kan je $dataX en $dataY gebruiken voor de aanroep naar JPGRAP.
Gewijzigd op 02/08/2013 13:41:31 door - SanThe -
Helaas:-( Dat had ik dus ook al geprobeerd.
maar dan krijg ik de error:
Code (php)
1
2
2
Either x or y data array contains non-numeric values.
Check that the data is really specified as numeric data and not as strings, it is een error to specify data for exanple as '-2345.2' (using quots).
Check that the data is really specified as numeric data and not as strings, it is een error to specify data for exanple as '-2345.2' (using quots).
Als ik hard coded
Code (php)
en dan dis vars verder in het script gebruik werkt het wel.
Gewijzigd op 02/08/2013 14:21:24 door mar kla
Quote:
Either x or y data arraay contains non-numeric values.
Chck that the datat is really specified as numeric data and not as strings, it is een error to specify data for exanple as '-2345.2' (using quots).
Chck that the datat is really specified as numeric data and not as strings, it is een error to specify data for exanple as '-2345.2' (using quots).
Dat is meestal een veeg teken dat er een onvoorstelbare sloddervos aan het prutsen is.
Mar kla op 02/08/2013 14:20:01:
Als ik hard coded
en dan dis vars verder in het script gebruik werkt het wel.
Code (php)
en dan dis vars verder in het script gebruik werkt het wel.
Met andere woorden je hebt gewoon arrays nodig, geen tot string omgevormde arrays!
Zie mijn aller, allereerste post en gebruik gewoon $valueX en $valueY daaruit. Dat zijn correcte arrays en blijkbaar heb je die gewoon nodig. Eventueel de getallen nog even typecasten naar een int.
Dank voor het verwijt, gelukkig ben jij volmaakt!!
Die tekst heb ik even snel overgetikt, en daar zitten wat typo's in .
En dat heeft dus niks te maken met de rest van het script!!
Toevoeging op 02/08/2013 15:11:50:
@Erwin
Ik heb uiteraard jouw eerste post van de week gelijk uitgeprobeerd.
Maar IK krijg het niet voor elkaar (m.a.w. ik weet niet hoe dat moet) om de waardes
Code (php)
1
2
2
Array ( [0] => 4115 [1] => 4413 [2] => 5421 [3] => 8130 [4] => 5313 [5] => 6043 [6] => 5360 [7] => 3813 [8] => 4112 [9] => 4006 [10] => 3700 [11] => 4908 [12] => 5611 [13] => 6789 [14] => 8444 [15] => 9140 [16] => 4736 )
Array ( [0] => dbo [1] => ein [2] => spa [3] => her [4] => top [5] => emm [6] => gae [7] => vvv [8] => dor [9] => for [10] => mvv [11] => sto [12] => cam [13] => hel [14] => vol [15] => vee [16] => haa )
Array ( [0] => dbo [1] => ein [2] => spa [3] => her [4] => top [5] => emm [6] => gae [7] => vvv [8] => dor [9] => for [10] => mvv [11] => sto [12] => cam [13] => hel [14] => vol [15] => vee [16] => haa )
die ik via
wel op mijn scherm te zien krijg naar
Code (php)
en die dan verder in het srcipt
te gebruiken.
Ik snap even niet wat je bedoeld met Eventueel de getallen nog even typecasten naar een int.
in de database staat de kolom Attendance als type int(6) dat is dan toch goed?
Gewijzigd op 02/08/2013 14:37:13 door mar kla
Maar goed. Volledig voorgekauwt nu. Als het je nu nog niet lukt kan je beter een vacature openen denk ik:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$valueX = array();
$valueY = array();
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY[] = (int)$record['attendence'];
$valueX[] = $record['guestteam'];
}
$graph->xaxis->SetTickLabels($valueX);
$b1plot = new BarPlot($valueY)
?>
$valueX = array();
$valueY = array();
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY[] = (int)$record['attendence'];
$valueX[] = $record['guestteam'];
}
$graph->xaxis->SetTickLabels($valueX);
$b1plot = new BarPlot($valueY)
?>
Gewijzigd op 02/08/2013 15:18:31 door Erwin H