Php 动态表问题
我正在尝试创建一个表,其中的数据表示如下:Php 动态表问题,php,mysql,arrays,Php,Mysql,Arrays,我正在尝试创建一个表,其中的数据表示如下: Skills | Project #1 | Project #2 | Project #3 Skill #1 Grade Grade Grade Skill #2 Grade Grade Grade 本质上,以Project开头的列是动态的,通过SQL查询获取并存储在数组中 技能也是动态的,存储在数组中。然后,每项技能的分数应该反映出它所在项目的分数 所有这些数据都在数据库中
Skills | Project #1 | Project #2 | Project #3
Skill #1 Grade Grade Grade
Skill #2 Grade Grade Grade
本质上,以Project开头的列是动态的,通过SQL查询获取并存储在数组中
技能也是动态的,存储在数组中。然后,每项技能的分数应该反映出它所在项目的分数
所有这些数据都在数据库中可用。我可以在一次查询中获得技能、项目和成绩
我正在想办法让它工作。现在,我只能想办法让技能和项目展示出来。不过,我不知道如何让它们与适当的分数相匹配。这是我的
$sql = "select skills.name as skillName, projects.name, projects_assessments.assessment from skills
INNER JOIN projects_assessments
ON skills.id = projects_assessments.skillID
INNER JOIN projects
ON projects_assessments.projectID = projects.id
WHERE projects_assessments.studentID = '{student}'
AND skills.teacher = '{teacher}'";
$result = mysql_query($sql) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
$projects[] = $row['name'];
$skills[] = $row['skillName'];
}
echo "<table><tr><th>Skill</th>";
$projects = array_unique($projects);
foreach($projects as $project) {
echo "<th>$project</th>";
}
echo "
</tr>";
foreach($skills as $skill) {
echo "<tr><td>$skill</td></tr>";
}
echo "
</table>
基本上我现在需要的是匹配每项技能的等级。该数据存储在$row['assessment']中
谢谢你的帮助 只需在二维数组中构建表:
$table = array();
while ($row = mysql_fetch_array($result)) {
$table[$row['skillName']][$row['name']] = $row['assessment'];
}
$firstRow = current($table);
// draw columns based on $firstRow
foreach ($table as $skillName => $projectList) {
// start row
foreach ($projectList as $assessment) {
// start column with $assessment as value
}
}
重要
确保正确排列行:
ORDER BY skillName, name;
只需在二维数组中构建表:
$table = array();
while ($row = mysql_fetch_array($result)) {
$table[$row['skillName']][$row['name']] = $row['assessment'];
}
$firstRow = current($table);
// draw columns based on $firstRow
foreach ($table as $skillName => $projectList) {
// start row
foreach ($projectList as $assessment) {
// start column with $assessment as value
}
}
重要
确保正确排列行:
ORDER BY skillName, name;
试试看我不太确定,因为连接不是求和…它们是字符串。我的回答对你有帮助吗?否则我就把它取下来。谢谢。试着看看我不太确定,因为连接不是总和…它们是字符串。我的回答对你有帮助吗?否则我就把它取下来。谢谢