繁体   English   中英

从数据库中的两个不同表填充下拉列表

[英]Populate dropdowns from two different tables in database

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

表格:课程-ID,标题; 类-ID,标题; classes_to_courses --coursesID,classesID

编码:

<?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中选择课程ID,以便正确设置数组?

谢谢。

不知道您收到什么错误,但看来您的加入可能是错误的。 在代码段中,您具有:

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表,反之亦然,courses表也是如此。

相反,您是否不应该基于c2c.classesID和c2c.coursesID上的courses表加入classes表?

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";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM