$var_data_running .= ",\[\"$row_array[0] \($row_array[2]\)\",$row_arr
+ay[2]\]";
That is why
my $orun=join(',',@iarray_run);
print "var data_run=[$orun];\n";
is correct.
use strict; use warnings;
use DBI;
my $storagefile='finddata';
my $DBH = DBI->connect( "dbi:SQLite:dbname=".$storagefile ) || die "Ca
+nnot connect: $storagefile $DBI::errstr";
my $sql = 'SELECT queue_name,jobs_pend,jobs_run
FROM queues
ORDER BY jobs_run DESC';
my $sth = $DBH->prepare( $sql );
$sth->execute();
# input
my %table = ();
my $recno = 0;
my @top = ();
while (my ($name,$pend,$run) = $sth->fetchrow_array){
my $key = ($recno++ < 5) ? $name : 'other' ;
push @top,$key unless (defined ($top[-1]) && $top[-1] eq 'other');
$table{$key}{'pend'} += $pend;
$table{$key}{'run'} += $run;
}
#So first you need to make your interior arrays
my @iarray_run;
for my $key (@top){
push @iarray_run,'["'.$key.'",'.$table{$key}{'run'}.']';
}
# then you join them and assign them
my $orun=join(',',@iarray_run);
print "var data_run=[$orun];\n";
my $orun2=join('',@iarray_run);
print "wrong-var data_run=[$orun2];\n";
print "\n";
use JSON 'decode_json';
my $frjson_data_run = decode_json( "[$orun2]" );
Result
var data_run=[["adice_short",192],["ncsim_short",84],["ncsim_long",78]
+,["adice_long",39],["normal",30],["other",34]];
wrong-var data_run=[["adice_short",192]["ncsim_short",84]["ncsim_long"
+,78]["adice_long",39]["normal",30]["other",34]];
, or ] expected while parsing array, at character offset 21 (before ""
+ncsim_short",84]["n...") at 1187071a.pl line 38.
Even poj's code at Re^5: How to add columns with new row name using perl from mysql query? via encode_json prints
var data_run = [["adice_short (192)","192"],["ncsim_short (84)","84"],
+["ncsim_long (78)","78"],["adice_long (39)","39"],["normal (30)","30"
+],["other (34)","34"]]
so i think you still need to pay much more attention to what you are doing.
http://www.json.org/An array is an ordered collection of values. An array begins with [ (left bracket) and ends with ] (right bracket). Values are separated by , (comma).
Just another day wasted i guess
You owe The Oracle some funky characters. And still no proper grovel. |