0

我正在尝试从数据库中的两个不同表中填充下拉列表,这些表使用前两个表中的 id 在第三个表中连接在一起。我在这里使用第一个答案作为下拉菜单的指南。

表格:课程——id、title;类——id、title;classes_to_courses -- 课程 ID、课程 ID

编码:

<?php
include("global.php");
doHeader();
$currentCourseClass = "SELECT id, title FROM courses";
$rsCurrentCourseClass = mysql_query($currentCourseClass);

while($get_row = mysql_fetch_assoc($rsCurrentCourseClass)) {
$categories[] = array("id" => $get_row['id'], "val" => $get_row['title']);
}

$currentCourseClass2 = "SELECT cl.id as classid, cl.title as classtitle, cr.id as courseid FROM classes_to_courses c2c LEFT JOIN classes cl ON c2c.coursesID = cl.id LEFT JOIN courses cr ON c2c.classesID = cr.id";

 $rsCurrentCourseClass2 = mysql_query($currentCourseClass2);


 while($get_row = mysql_fetch_assoc($rsCurrentCourseClass2)) {
 $subcats[$get_row['courseid']][] = array("id" => $get_row['classid'], "val" => $get_row['classtitle']);
 }
/**/
$jsonCats = json_encode($categories);
$jsonSubCats = json_encode($subcats);


?>

我的问题似乎与第二个查询 $currentCourseClass2 有关。如何从连接表 classes_to_courses 中选择 courseid 以便正确设置我的数组?

谢谢。

4

1 回答 1

0

不确定您收到什么错误,但看起来您的加入可能是错误的。在代码片段中,您有:

SELECT 
    cl.id as classid, 
    cl.title as classtitle
    cr.id as courseid 
FROM classes_to_courses c2c 
LEFT JOIN classes cl ON c2c.coursesID = cl.id 
LEFT JOIN courses cr ON c2c.classesID = cr.id";

因此,您尝试使用 c2c.coursesID 加入 classes 表,反之亦然。

相反,您不应该加入基于 c2c.classesID 的课程表和 c2c.coursesID 上的课程表吗?

SELECT 
    cl.id as classid, 
    cl.title as classtitle
    cr.id as courseid 
FROM classes_to_courses c2c 
LEFT JOIN classes cl ON c2c.classesID = cl.id 
LEFT JOIN courses cr ON c2c.coursesID = cr.id";
于 2013-01-09T19:56:10.627 回答