【发布时间】:2020-06-01 17:22:57
【问题描述】:
我对 PHP 比较陌生,仍在学习,我知道这是一个新手问题,但我很乐意并感谢您提供的任何帮助。
我目前正在编写一个网站,该网站使用 PHP 和 MySQL 从“课程”和“类别”数据库表中提取和组织数据。 “课程”表中的每一行通过“category_id”列与特定课程类别相关联,该列链接到“类别”表中的相关“id”列。
因此,例如,如果“类别”表中的类别 3 是“音乐”并且特定课程是关于音乐的,则该课程的“category_id”列值将在“课程”表中设置为“3”。 (我希望我能恰当地解释所有这些;如果不清楚,我很抱歉)。
我想显示当前包含课程的所有课程类别名称,并在每个类别名称下方显示每个类别中的所有课程名称。所以,例如:
- 音乐:(1) 摇滚,(2) 爵士
- 绘画:(1) 水彩,(2) 丙烯
这是我用来执行此操作的代码。我正在使用 MVC 框架,其中我将“课程”和“类别”表中的所有数据作为关联数组 $categories 和 $courses 传递到此视图中。
<?php foreach ($categories as $category) : ?>
<h4><?php echo ($category['name']); ?></h4>
<?php foreach ($courses as $course) {
if ($course['category_id'] == $category['id']) : ?>
<p><?php echo ($course['name']); ?></p>
<?php endif;
}
endforeach; ?>
我遇到的问题是我的“类别”表中有类别行,我目前在“课程”表中还没有任何相应的课程。当我建立网站时,这会改变,但现在为了组织起见,我不想从“类别”表中删除这些行。
所以现在,给定上面的代码,我正在输出一个类别和课程列表,如下所示:
- 舞蹈:
- 雕塑:
- 音乐:(1) 摇滚,(2) 爵士
- 绘画:(1) 水彩,(2) 丙烯
最后,我的问题是:我将如何遍历每个类别,并且仅在“课程”表中有与该 category_id 相关联的相应课程时才显示类别名称? (参考上面的示例,跳过而不显示“舞蹈”和“雕塑”类别,因为还没有任何课程与这些类别相关联)。
再次,如果以上任何内容不清楚,我深表歉意,非常感谢任何人的帮助!
最好, 乔什
【问题讨论】:
-
提供sql查询你如何加载数据