문제가 있습니다.PHP - 누락 된 항목을 말하십시오
나는 세 테이블 class_tbl, subject_tbl 및 * student_tbl이 있습니다. class_tbl에는 "class_id, subject_id 및 student_id"라는 3 개의 열이 있습니다. * subject_tbl에는 4 개의 열 * "subject_id, subject_name, subject_yr, subject_sem"이 있고 * student_tbl에는 마지막에 student_id 및 student_name의 두 열이 있습니다. 이러한 행이 있습니다
**[class_id || subject_id || student_id]**
|| 1001 || 2002 || 3003
|| 1002 || 2003 || 3003
|| 1003 || 2004 || 3003
subject_tbl 5 개 행이 :
**[subject_id || subject_name || subject_yr || subject_sem]**
|| 2002 || Math || 2010 || 1st
|| 2003 || Science || 2010 || 1st
|| 2004 || History || 2010 || 1st
|| 2005 || PE || 2010 || 1st
|| 2006 || Social Studies || 2010 || 1st
student_tbl 1 개 행이 : 실제로 학생
의 수에 따라여기서 목표는 PE와 사회 연구 인 마지막 두 과목을 에코하여 class_tbl에 삽입 할 수 있다는 것입니다. 에코는 그 학기와 학년도 동안 2 과목에 2 개의 항목이 없다고 말하고 있습니다. 이 쿼리는 이미 수학, 과학 및 역사 인 class_tbl의 항목에있는 과목을 반향하지 않습니다. 해당 학기와 연도의 누락 된 과목을 쿼리하고 에코하려면 어떻게합니까? 나는 정말로 어떤 아이디어라도 내놓을 수 없다. 도와주세요 tnx!
여기 코드는 해당 school_yr 및 학기의 모든 과목을 표시합니다.
if (isset ($db1)&&$db1!=""){
}
<?php
$student_id = $_POST['student_id'];
$sem = $_POST['sem'];
$yr = $_POST['yr'];
$list = mysql_query("SELECT *
FROM
class_tbl
LEFT JOIN
subject_tbl
ON
class_tbl.subject_id = subject_tbl.subject ID
WHERE
student_id = '$student_id'
OR
subject_sem = '$sem'
OR
subject_yr = '$yr'
ORDER BY
subject_id asc");
while($row_list=mysql_fetch_assoc($list))
{
echo $row_list['subject_id'];
if($row_list['subject_id']==$db1){echo "selected"; }
echo $row_list['subject_name'];
}
예제 출력은 다음과 같습니다
당신이 개없는 과목이 "PE와 사회를."
이 좀 더 사람이 읽을 수있는 (예를 들어 일을 굵게 또는 기울임) 구조하시기 바랍니다 – kelunik
당신이 HTTP를 사용한 경우 : // sqlfiddle .com /, 그러면 당신이 쉬울 것입니다. –