==========================================================================
Using DBI Perl Programming I get a database o/p as
below
Student             SubjectCode        Marks
------------------------------------------------
A                       1                90
A                       2                89
B                       1                70
B                       2                71
B                       3                71
C                       2                73
C                       3                97
-------------------------------------------------
Subject code may vary to any value.
I need a report o/p in the following format and
displayed in HTML
Student             1   2  3  4   
------------------------------------------------
A                  90  89 
B                  70  71  71
C                      73  97
-------------------------------------------------
================================================================
The following code works out  well for this
  $sth->bind_columns (\$Student, \$subjectCode,
\$marks);
  # chuck all the data into an array
  my @ora_data;
  my $index=0;
  my $count=1;
  while ($sth->fetch) #fetching the first row
  {
    #If its the first record assign the student id to
the first row
    if ($count == 1) {
        $ora_data[$index]{'STUDENT'} = $student;
        $count++;
    }
    #Compare the student id of the array with the row
fetched from the 
database
    #if its not equal then create the next row in the
array and assign 
the student to the row
    if ( $ora_data[$index]{'STUDENT'} ne $student) {
        $index++;
        $ora_data[$index]{'STUDENT'} = $student;
      }
    #If the studentid in the array is equal to the row
fetched from the 
database i.e sth->fetch
    #Compare the subject code and assign the
appropriate value of marks 
to the studentid.
   if ($ora_data[$index]{'STUDENT'} eq $student) {
       if ($subjectCode == 1) {
            $ora_data[$index]{'MARK1'} = $marks;
        }
        elsif ($subjectCode == 2) {
            $ora_data[$index]{'MARK2'} = $marks;
        }
        elsif ($subjectCode == 3) {
            $ora_data[$index]{'MARK3'} = $marks;
        }
        elsif ($subjectCode == 512) {
            $ora_data[$index]{'MARK4'} = $marks;
        }
      }
  }
  # close statement handler and pass the results back.
  $sth->finish;
  return @ora_data;
=============================================================
Is there any other way in which this could be coded
efficiently.
Regards
Rohit
-----------------------------------------------------------------



________________________________________________________________________
Yahoo! India Matrimony: Find your partner online. 
http://yahoo.shaadi.com/india-matrimony/

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to