2013-01-09 84 views
0

我試圖從數據庫中的兩個不同表中填充下拉列表,這些表在第三個表中使用前兩個ID進行連接。我用第一個回答here作爲下拉菜單的指南。從數據庫中的兩個不同表中填充下拉列表

表格: courses - id,title; classes - id,title; 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中選擇courseid以便我的數組設置正確?

謝謝。

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – Kermit

回答

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類表,反之亦然的課程表。

相反,你不應該加入基於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"; 
+0

你是對的。我不能相信我錯過了這一點。最後一天,我一直對此感到震驚。非常感謝! – user1810546

+0

很高興幫助,我去過那裏。有時候只需要一組新鮮的眼睛。 – user1757442

相關問題