我有一个数据库,我需要从中获取一些值。我的桌子看起来像这样
column: examroll, studentname, reporttitle, marks1, marks2, marks3, total
values: 1, ABC, xyz, 5, 4, 6, 15
values: 1, ABC, pqr, 6, 4, 6, 16
values: 2, DEF, stu, 3, 7, 4, 14
values: 2, DEF, vwx, 2, 8, 5, 15
values: 2, DEF, efg, 7, 3, 7, 17
我想为每个学生获取成绩单,如下所示:
Name:ABC
Exam Roll:1
xyz 5 4 6 15
pqr 6 4 6 16
NAME:DEF
Exam Roll:2
stu 3 7 4 14
vwx 2 8 5 15
efg 7 3 7 17
我得到studentname
并且examroll
正确,但是在 中innerloop
,我将所有值放在一起。
Exam Roll:1
xyz 5 4 6 15
pqr 6 4 6 16
stu 3 7 4 14
vwx 2 8 5 15
efg 7 3 7 17
NAME:DEF
Exam Roll:2
xyz 5 4 6 15
pqr 6 4 6 16
stu 3 7 4 14
vwx 2 8 5 15
efg 7 3 7 17
我应该在哪里更改以获得正确答案?
我已经在 perl 代码中完成了以下操作
my @outerloop=();
my @innerloop=();
my @blank=();
my $query1="select distinct examroll,studentname from table";
my $sth1 = $dbh->prepare($query1);
$sth1->execute();
my$query2="select reporttitle,mark1,mark2,mark3 where examroll=?";
my $sth2 = $dbh->prepare($query2);
while ($data1 = $sth1->fetchrow_hashref) {
$sth2->execute($data1->{'examroll'});
while($data2 = $sth2->fetchrow_hashref){
push(@innerloop,$data2);
}
$sth2->finish;
$data1->{'innerloop'}=\@innerloop;
push(@outerloop,$data1);
#$data1->{'innerloop'}=\@blank; #This does not work either, all data is blank
}
$sth1->finish;
现在在 html 部分
<TMPL_LOOP NAME=resultsloop>
Name: <TMPL_VAR NAME=studentname>
Exam Roll: <TMPL_VAR NAME=examroll>
<table>
<TMPL_LOOP NAME=innerloop>
<tr>
<td><TMPL_VAR NAME=reporttitle></td>
<td><TMPL_VAR NAME=marks1></td>
<td><TMPL_VAR NAME=marks2></td>
<td><TMPL_VAR NAME=marks3></td>
<td><TMPL_VAR NAME=total></td>
</tr>
</TMPL_LOOP>
</table>
</TMPL_LOOP>