ten eerste excuus voor mijn domheid maar ik ben nu al 1.5 dag bezig maar ik kom er niet uit. En misschien is het heel simpel maar zie ik door de code de oplossing niet meer;

wat is het probleem:
In mijn database staab wedstrijden met bezoekers aantallen


ik doe een

select 
...
t.TeamName_Short as guestteam,
g.Attendance as attendence,
.....


attendence heeft dan als resultaat 10200,10056,14009,9889,10008,10340,10129..........
guestteam heeft dan als resultaat zwo,utr,aja,twe,fey............
[code]

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;
?>
[code]

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 :-(
sorry maar ondanks alle hulp hier ben ik er na een paar dagen klooien nog steeds niet uit:-(

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:


<?php
$dataY=array(10200,10056,14009,9889,10008,10340,10129,9134,10938,8254,8298,11857,12140,10577,10330,10000,11231);
$dataX = array('VIT','PSV','RKC','VVV','NEC','UTR','NAC','HER','ROD','AZA','EXC','HEE','AJA','TWE','GRO','FEY','GRA');
?>


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

<?php
echo $dataY;
?>

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

Eddy E op 31/07/2013 16:44:32

<?php
$valueX = array();
$valueY = array();
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY[] = $record['attendence'];
$valueX[] = $record['guestteam'];
}

echo '("' . implode('","', $valueY) . '")';
echo '("' . implode('","', $valueX) . '")';
?>

Dit geeft toch precies wat jij zoekt.
Ik vrees dat dat echter helemaal niet is wat hij nodig heeft. Dat denkt de TS alleen maar. Deze notatie:

("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.
@san

<?php
echo '("' . implode('","', $valueY) . '")';
echo '("' . implode('","', $valueX) . '")';
?>


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


<?php
$dataY= array ("' . implode('","', $valueY) . '");
?>

doen

Daarbij komt dat van JPGRAPH je de getallen alleen met een , en tekst met enkel ' moet aanleveren
<?php
$valueX = array();
$valueY = array();
while($record = mysql_fetch_assoc($result_homeattendence))
{
$valueY[] = $record['attendence'];
$valueX[] = $record['guestteam'];
}

$dataY = '(' . implode(',', $valueY) . ')';
$dataX = '("' . implode('","', $valueX) . '")';
?>
Nu kan je $dataX en $dataY gebruiken voor de aanroep naar JPGRAP.
@San

Helaas:-( Dat had ik dus ook al geprobeerd.

maar dan krijg ik de error:

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).


Als ik hard coded

<?php
$dataY=array(10200,10056,14009,9889,10008,10340,10129,9134,10938,8254,8298,11857,12140,10577,10330,10000,11231);
$dataX=array('VIT','PSV','RKC','VVV','NEC','UTR','NAC','HER','ROD','AZA','EXC','HEE','AJA','TWE','GRO','FEY','GRA');
?>

en dan dis vars verder in het script gebruik werkt het wel.

<?php
$graph->xaxis->SetTickLabels($dataX);
$b1plot = new BarPlot($dataY);
?>


Ik zou, met een goede editor, op zoek gaan naar typo's. Alleen al de foutmelding bevat er een stuk of tien:

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).


Dat is meestal een veeg teken dat er een onvoorstelbare sloddervos aan het prutsen is.
Oh oh oh:
Mar kla op 02/08/2013 14:20:01

Als ik hard coded

<?php
$dataY=array(10200,10056,14009,9889,10008,10340,10129,9134,10938,8254,8298,11857,12140,10577,10330,10000,11231);
$dataX=array('VIT','PSV','RKC','VVV','NEC','UTR','NAC','HER','ROD','AZA','EXC','HEE','AJA','TWE','GRO','FEY','GRA');
?>

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.

@ward


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

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 ) 


die ik via


<?php
print_r($valueY);
echo '<br>';
print_r($valueX); 
?>


wel op mijn scherm te zien krijg naar


<?php
$dataY=array(10200,10056,14009,9889,10008,10340,10129,9134,10938,8254,8298,11857,12140,10577,10330,10000,11231);
$dataX=array('VIT','PSV','RKC','VVV','NEC','UTR','NAC','HER','ROD','AZA','EXC','HEE','AJA','TWE','GRO','FEY','GRA');
?>

en die dan verder in het srcipt


<?php
$graph->xaxis->SetTickLabels($dataX);
$b1plot = new BarPlot($dataY)
?>


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?
Mijn god.... Misschien is het beste advies dan om er maar helemaal niet aan te beginnen, of in elk geval eerst eens te leren scripten....

Maar goed. Volledig voorgekauwt nu. Als het je nu nog niet lukt kan je beter een vacature openen denk ik:
<?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)
?>

Reageren