0

データベース内の2つの異なるテーブルのドロップダウンにデータを入力しようとしています。これらのテーブルは、最初の2つのIDを使用して3番目のテーブルに結合されています。ドロップダウンのガイドとして、ここで最初の回答を使用しました。

テーブル:コース-id、タイトル; クラス--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);


?>

私の問題は、2番目のクエリ$currentCourseClass2にあるようです。配列が正しく設定されるように、結合されたテーブルclasses_to_coursesからコースIDを選択するにはどうすればよいですか?

ありがとう。

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 テーブルに参加しようとしています。また、courses テーブルについてはその逆です。

代わりに、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 に答える