Tuesday, July 19, 2011

complicate hash

@data=@values=();
$recordCount=0;
while(($resultSetObj->MoveNext()) == 1) {
$data=$resultSetObj->GetAllColumnValues(0);
#print "DATA:\"".join("\",\"",@$data)."\"
";
if($lastRecord && ($lastRecord ne $$data[$j]))
{
#print "COMPARE:$lastRecord $$data[1]
";
for($i=0;$i<@fields;$i++)
{
$value=join(',',sort keys(%{$results{$fields[$i]}}));
push(@values,$value);
#push(@values,";");
}
#print "VALUES:@values

";
push(@data,[@values]);
$recordCount++;
undef @values;
undef %results;
}
for($i=0;$i<@$data;$i+=2)
{
$results{$$data[$i]}{$$data[$i+1]}++;
}
#print "RESULT:".Dumper(\%results)."
";
$j=0;
while($$data[$j] ne "id")
{
$j++;
}
$j++;
$lastRecord=$$data[$j];
}
if ($lastRecord){
for($i=0;$i<@fields;$i++)
{
$value=join(',',sort keys(%{$results{$fields[$i]}}));
push(@values,$value);
}
$recordCount++;
push(@data,[@values]);
undef @values;
undef %results;
}