【发布时间】:2014-07-28 17:50:29
【问题描述】:
我想在下面的代码中为我的输出添加更多列。我已经尝试了 7 个多小时,但仍然无法弄清楚如何。
$sub=array();
$query=mysql_query("SELECT regd, name, roll, Subject,
SUM( Mark_score ) / SUM( Full_Mark ) *100 AS hl,
SUM( Full_Mark ) AS hm
FROM entry
WHERE Year = '2013'
AND Section = 'A'
AND Name_of_exam = 'First Term Exam'
GROUP BY regd, Subject");
while ($row=mysql_fetch_assoc($query)){
$sub[$row['regd']][$row['Subject']] = $row['hl'];
}
$subkey=key($sub); //get the 1st regd key, to be used to get the Subject keys
echo "<table border=1>";
echo "<tr>";
echo '<td>regd</td>';
echo '<td>name</td>';
foreach($sub[$subkey] as $keys=>$vals){
echo "<td>".$keys."</td>";
}
echo "</tr>";
foreach($sub as $key=>$val){ //loop through each regd value, creating a row
echo "<tr>";
echo '<td>'.$key.'</td>';
echo '<td>'.$name.'</td>';//How do I put name array here?
foreach($val as $v){ //loop through each Subjects for each regd
echo '<td>'.$v.'</td>';
}
echo "</tr>";
}
echo "</table>";
我想在输出中添加name 字段和roll 字段。感谢您的意见。
更新了表格:
CREATE TABLE IF NOT EXISTS `entry` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`regd` bigint(20) NOT NULL,
`name` varchar(30) NOT NULL,
`rollno` int(11) NOT NULL,
`section` varchar(5) NOT NULL,
`univ_roll` varchar(50) NOT NULL,
`year` year(4) NOT NULL,
`subject` varchar(50) NOT NULL,
`Name_of_exam` varchar(40) NOT NULL,
`Mark_score` int(11) NOT NULL,
`Full_Mark` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `regd` (`regd`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
【问题讨论】:
-
mysql_query是一个过时的接口,不应在新应用程序中使用,并将在未来的 PHP 版本中删除。像PDO is not hard to learn 这样的现代替代品。如果您是 PHP 新手,PHP The Right Way 之类的指南可以帮助您解释最佳实践。 -
感谢您的意见。一定会检查的。
标签: php mysql arrays loops pivot