【发布时间】:2012-08-05 17:17:50
【问题描述】:
对不起,如果我的标题被取消了,我不确定我正在尝试做的技术术语是什么。话虽如此,我想做的是构建一个从 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>
(非常感谢您的所有帮助。SO 帮助我学到了很多东西。我希望有一天能够尽快回馈社区。)
【问题讨论】:
-
我可以给你一些提示:这是这个网站上经常被问到的问题之一。对于您的两级菜单,我建议您查询所有数据,按第一级排序(如连接)。然后在 PHP 中处理结果以将其打包在一起。我的磁盘上有一些代码,不久前有一个相关的赏金问题:Displaying a table in PHP with repeated columns
-
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到 red box 了吗?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial。