2014-11-23 3 views
0

sched_id, sc_id1, sc_id2, sc_id3, sc_id4, sc_id5, sc_id6, sc_id7, sc_id8, sc_id9, sc_id10, sched_name을 포함하는 테이블 schedules가 있습니다.다른 값을 가진 루프 쿼리

는 또한 sc_id, sl_id, schoolyear, semister, etc...sc_id1 - scid10을 가지고 테이블 subject_currentsubject_current

은 또한, 나는 테이블을 sl_id, subject_code, subject_description, subject_prereqsubject_list이 테이블의 sc_id에서 "외래 키"입니다 있습니다. 테이블 subject_currentsl_idsl_idtablesubject_list 인 외래 키입니다.

지금, 내가하고 싶은 것은이 "에코"단지 나에게 표 schedules에서 sc_id1 - sc_id10의 값을주는 테이블 subject_list에서 subject_description.

이 코드는 작동하지 않습니다

for($jaa = 1;$jaa < 11;$jaa++){ 
    $s_scid = "s_scid".$jaa; 
    $s_sublist = mysql_query("SELECT * FROM subject_current WHERE sc_id='$s_scid'"); 
    while($rows_ss = mysql_fetch_assoc($s_sublist)){ 
     $ss_slid = $rows_ss['sl_id']; 

     $ssl_sublist = mysql_query("SELECT * FROM subject_list WHERE sl_id='$ss_slid'"); 
     while($rows_ssl = mysql_fetch_assoc($ssl_sublist)){ 
      $ssl_slid = $rows_ssl['sl_id']; 
      $ssl_subdesc = $rows_ssl['subject_description']; 
     } 
    } 
    echo $ssl_subdesc; 
} 

편집이 내가 정확히 일이 원하는 것입니다

: 이것은 10 시간을 쓸 수있는 고통이다

$s_scid1 = $rows_s['sc_id1']; // which is a value of 1 
$s_scid2 = $rows_s['sc_id2']; // which is a value of 2 

$s_sublist = mysql_query("SELECT * FROM subject_current WHERE sc_id='$s_scid1'"); 
while($rows_ss = mysql_fetch_assoc($s_sublist)){ 
    $ss_slid1 = $rows_ss['sl_id']; 

    $ssl_sublist = mysql_query("SELECT * FROM subject_list WHERE sl_id='$ss_slid1'"); 
    while($rows_ssl = mysql_fetch_assoc($ssl_sublist)){ 
     $ssl_slid1 = $rows_ssl['sl_id']; 
     $ssl_subdesc1 = $rows_ssl['subject_description']; 
     echo $ssl_subdesc1; 
    } 
} 
$s_sublist2 = mysql_query("SELECT * FROM subject_current WHERE sc_id='$s_scid2'"); 
while($rows_ss2 = mysql_fetch_assoc($s_sublist2)){ 
    $ss_slid2 = $rows_ss2['sl_id']; 

    $ssl_sublist2 = mysql_query("SELECT * FROM subject_list WHERE sl_id='$ss_slid2'"); 
    while($rows_ssl2 = mysql_fetch_assoc($ssl_sublist2)){ 
     $ssl_slid2 = $rows_ssl2['sl_id']; 
     $ssl_subdesc2 = $rows_ssl2['subject_description']; 
     echo $ssl_subdesc2; 
    } 
} 

. 그래서 그것을 반복하고 싶습니다. 그러나 누군가 나에게 나쁜 소식을 전하며 INNER JOIN에 대해 이야기했습니다. 하지만 INNER JOIN은 어떻게 할 수 있습니까?

+0

을 왜 내부 사용 해달라고 대신에 조인과 쿼리를 여러 번 호출하는 레코드를 가져 오기? – SMA

+0

"코드가 작동하지 않습니다"라는 의미는 무엇입니까? 오류나 예기치 않은 결과가 발생합니까? 좀 더 구체적으로 말하십시오. – Ashalynd

+0

또한이 줄의 의미는 무엇입니까? 나에게 이상하게 보입니다. '$ s_scid = "$". "s_scid". $ jaa;' – Ashalynd

답변

0

당신이 그것을 설명하는 방법, 당신은 같은 것을 수행해야합니다

for($jaa = 1;$jaa < 11;$jaa++){ 
    $s_scid = "s_scid".$jaa; 
    $the_query = "SELECT sl_id, subject_description FROM subject_list sl JOIN subject_current sc ON sl.sl_id=sc.$s_scid"; 
    /* the above should generate a JOIN with a particular element from your master table */ 
    $ssl_sublist = mysql_query($the_query); 
    while($rows_ssl = mysql_fetch_assoc($ssl_sublist)){ 
     $ssl_slid = $rows_ssl['sl_id']; 
     $ssl_subdesc = $rows_ssl['subject_description']; 
     echo $ssl_subdesc; 
    } 
} 
관련 문제