很抱歉,如果我的标题已关闭,我不确定我要做的技术术语是什么。话虽如此,我正在尝试做的是构建一个从mysql查询填充的手风琴样式菜单。菜单的第一部分将只包含一个团队名称列表,该列表将来自一个选择所有团队名称并构建菜单的查询:
$result = mysql_query("SELECT * FROM SportsByTeam");
<ul class='nav nav-list'>
<?php
while($row = mysql_fetch_array($result))
{
?>
<li>
<a href="<? echo $row['seo_team']?>"> <?php echo $row['team'] ?> </a>
</li>
<?php
} ?>
这适用于我正在尝试构建的菜单的顶级。我完全坚持的是如何合并菜单的手风琴(底层)。我想要发生的是当有人点击上面查询生成的团队时,属于该团队的玩家列表将会下降。为了清楚起见,我不是在问如何从html / css角度创建手风琴菜单,我问的是如何基于mysql查询创建一个动态的手风琴菜单。我为这部分提出的查询是:
SELECT PlayerByTeam.team_name AS TeamName, SportsByTeam.seo_team, PlayerByTeam.first_name, PlayerByTeam.last_name
FROM PlayerByTeam
inner join SportsByTeam ON PlayerByTeam.team_name = SportsByTeam.team
但这就是我能得到的。如何将两个查询的结果合并到一个动态菜单中?看起来像是:
<ul>
<li> Team Name 1 </li>
<ul>
<li> Player Name 1 </li>
<li> Player Name 2 </li>
</ul>
<li> Team Name 2 </li>
..etc
</ul>
(我真的很感谢你的帮助。所以我帮助我学到了很多东西。我希望有一天很快能回馈社区。)
答案 0 :(得分:0)
您可以选择所有玩家并由他们的团队订购。然后,每次团队名称更改时,都需要执行新元素。
一些伪代码:
while($row = get_row()) {
if (team_has_changed($row)) {
if (there_was_a_previous_team()) {
end_previous_team();
}
start_new_team();
}
process_team_member($row);
}
if (there_was_a_previous_team()) {
end_previous_team();
}
这个非常富有表现力的代码,我在之前的一些答案中概述了一个while循环,你可以在这里找到它:https://stackoverflow.com/a/11616884/367456
然后,您可以将这种分组包装到一些允许您进行简单使用的迭代器组件中(您应该在这里使用Mysqli或PDO,因为它们具有可以迭代的结果)。我在前一个已经有一些代码示例的答案中证明了这一点:https://stackoverflow.com/a/11619281/367456
它通过为每个级别提供一个迭代器来简化问题,而在开始时,您只需查询数据库并从中获取一个结果。