2013-06-06 14 views
0

이 코드는 PHP에서 함수를 호출하는 함수입니다. 함수 호출이 호출되지 않습니다.PHP 함수에서 함수 호출이 작동하지 않습니다.

function saveSubject(){ 
    $result = mysql_query("select * from term where description='".$_POST['term']."'"); 
    $row = mysql_fetch_array($result, MYSQL_NUM); 
    global $term; 
    $term = $row[0]; 
    $x=1; 
    while(isset($_POST['subCode'.$x])and isset($_POST['subTitle'.$x]) and isset($_POST['subUnit'.$x])){ 
      $code = $_POST['subCode'.$x]; 
      $title = $_POST['subTitle'.$x]; 
      $unit = $_POST['subUnit'.$x]; 
      $query = "INSERT INTO subject(subcode, description, units, termid) 
       VALUES('".$code."','".$title."',".$unit.",".$term.")"; 
      $result = mysql_query("SELECT * from subject where subcode='".$code."'"); 
      if(mysql_num_rows($result) > 0){ 
       $message = "Subject Code : ".$code; 
       prompt($message); 
      }else{ 
       mysql_query($query); 
       savePre($code, $x); 
       } 
      $x++; 
     } 
} 
function savePre($code, $y){ 
$pre = mysql_query("SELECT subject.subcode from subject left join term 
        on term.termid=subject.termid 
        left join curriculum on term.termid = curriculum.curriculumid 
        where term.courseid =".$_POST['course']); 
    while($row = mysql_fetch_array($pre, MYSQL_NUM)){ 
     $c = $row[0].$y; 
     if(isset($_POST[$c])){ 
      $result = mysql_query("Select * from pre_requisite where pre_requisites=".$row[0]."and subject=".$code); 
      if(mysql_num_rows($result) > 0){ 
       $message = ""; 
      }else{ 
       mysql_query("INSERT into pre_requisites(pre_requisite, subject) 
        values (".$row[0].", ".$code.")"); 
      } 
     } 
    } 
} 

saveSubjec()에서 savePre() 함수를 호출했지만 호출이 작동하지 않습니다. 나는 무엇이 잘못되었는지를 알 수 없다. 도와주세요! 간단한

+2

는 실행되지'else' statement..make 확인'mysql_num_rows도 ($ 결과)'복귀'0' 당신이 전화가 작동하지 않는 말할 때 다음 기능이 –

+0

작동합니다, 당신은 무엇을 의미합니까 때문에? 오류가 있습니까? 데이터베이스가 업데이트 중입니까? 이것을 mysql_query()'의 마지막에 추가하거나 mysql_error();를 죽이면'else' 실행 여부를 확인하기 위해 함수 호출 이전에' – Dale

+0

'echo'가 실행됩니다. – Mahdi

답변

1

...

당신의 코드는 코드 위에서

$query = "INSERT INTO subject(subcode, description, units, termid) 
    VALUES('".$code."','".$title."',".$unit.",".$term.")"; 

$result = mysql_query("SELECT * from subject where subcode='".$code."'"); 
if(mysql_num_rows($result) > 0) 
{ 
    $message = "Subject Code : ".$code; 
    prompt($message); 
}else{ 
    mysql_query($query); 
    savePre($code, $x); 
} 

당신이 database 레코드를 삽입하고 그래서 항상 1를 반환합니다 subcode 경기 where condition를 사용하여 그 기록을 선택하는 것을 상상할 수있다 output이므로 else condition은 절대로을 실행하지 않습니다.

이것이 바로 savePre 기능을 호출 할 수없는 이유입니다.

+1

그는 select 전에 insert query를 실행하지 않습니다. –

+0

오오 그렇습니다. 나는 그것을 깨닫지 못했습니다. +1 for –

0

saveSubject() 함수 위에 savePre() 함수를 정의하려고합니다. 이것을 사용하십시오.

function savePre($code, $y) 
{ 
$pre = mysql_query("SELECT subject.subcode from subject left join term 
       on term.termid=subject.termid 
       left join curriculum on term.termid = curriculum.curriculumid 
       where term.courseid =".$_POST['course']); 
while($row = mysql_fetch_array($pre, MYSQL_NUM)) 
{ 
    $c = $row[0].$y; 
    if(isset($_POST[$c])) 
    { 
     $result = mysql_query("Select * from pre_requisite where pre_requisites=".$row[0]."and subject=".$code); 
     if(mysql_num_rows($result) > 0){ 
      $message = ""; 
     }else{ 
      mysql_query("INSERT into pre_requisites(pre_requisite, subject) 
       values (".$row[0].", ".$code.")"); 
     } 
    } 
} 
} 

function saveSubject() 
{ 
$result = mysql_query("select * from term where description='".$_POST['term']."'"); 
$row = mysql_fetch_array($result, MYSQL_NUM); 
global $term; 
$term = $row[0]; 
$x=1; 
while(isset($_POST['subCode'.$x])and isset($_POST['subTitle'.$x]) and isset($_POST['subUnit'.$x])) 
{ 
     $code = $_POST['subCode'.$x]; 
     $title = $_POST['subTitle'.$x]; 
     $unit = $_POST['subUnit'.$x]; 

     $result = mysql_query("SELECT * from subject where subcode='".$code."'"); 
     if(mysql_num_rows($result) > 0){ 
      $message = "Subject Code : ".$code; 
      prompt($message); 
     } 
     else 
     { 
      $query = "INSERT INTO subject(subcode, description, units, termid) 
      VALUES('".$code."','".$title."',".$unit.",".$term.")"; 
      mysql_query($query); 

      savePre($code, $x); 
      } 
     $x++; 
    } 
} 
+0

나는 이미 그렇게 해왔다. – Xelamae

관련 문제