2012-09-20 5 views
-1

데이터베이스 날씨에 의존성을 업데이트하거나 삽입하도록 아래 함수가 있습니다. 전자 메일 주소가 제대로 작동하지만 다른 테이블에 들어갈 필요가있는 정보가 있으면 정보가 필요합니다. 내가 가진 한 idPHP : 다른 테이블에 데이터 삽입하기

에 따라 그것은 if($emailCheck != FALSE) 문에 대해 내가 그

id을 다른 insert 문을 실행하고 설정할 수 있다고했다 내 질문은 내가 정보의 새로운 insert에서이 작업을 얻을 수있는 방법이다 else 성명?

삽입 기능 :

function Insert() 
{ 
    $emailCheck = $this->checkEmail($email); 

    if($emailCheck != FALSE) 
    { 
    updateQuery by $emailCheck['id'])); // The email address is found so we update the data 

    }else{ 

    Jojo::insertQuery; // The email address is not found so we insert the new row 
    } 
} 

확인 기능 :

function checkEmail($email) 
{ 
    $email = $POST['Email']; 

    if($email) 
    { 
     $candemail = selectRow("SELECT * FROM {table} WHERE email=?",$email); 

     if(isset($candemail['email'])) 
     { 
      return $candemail; 
     } else { 
      return FALSE; 
     } 
    } 
} 

전체 기능 : 그것은 말한다

function candidateInsert($fields, $candiatefilename,$jobid) 
    { 
     $emailCheck = Jojo_Plugin_name_jobs_apply::checkCandidateEmail($email); 

     if($emailCheck != FALSE) 
     { 
     //Jojo::updateQuery("UPDATE {db} SET first_name=?,last_name=?,home_phone=?,work_phone=?,mobile_phone=?,email=?,skype=?,contact_method=?,location=?,location_other=?,cv_path=? WHERE id=?", array($fields['FirstName'],$fields['LastName'],$fields['HomePhone'],$fields['WorkPhone'],$fields['MobilePhone'],$fields['Email'],$fields['Skype'],$fields['ContactMethod'],$fields['Location'],$fields['LocationOther'],$candiatefilename, $emailCheck['id'])); 
     //Jojo::insertQuery("INSERT INTO {refocus_candidate_job} SET candidateID=?,jobID=?,appliedDate=?", array($emailCheck['id'],$jobid,date("d/m/y"))); 
    }else{ 
     Jojo::insertQuery("INSERT INTO {db} SET first_name=?,last_name=?,home_phone=?,work_phone=?,mobile_phone=?,email=?,skype=?,contact_method=?,location=?,location_other=?,cv_path=?", array($fields['FirstName'],$fields['LastName'],$fields['HomePhone'],$fields['WorkPhone'],$fields['MobilePhone'],$fields['Email'],$fields['Skype'],$fields['ContactMethod'],$fields['Location'],$fields['LocationOther'],$candiatefilename)); 

     $id = Jojo::insertQuery; 

     //Jojo::insertQuery("INSERT INTO {db_candidate_job} SET candidateID=?,jobID=?,appliedDate=?", array($id,$jobid,date("d/m/y"))); 

     } 
    } 
+0

정확한 문제가 무엇인가? else 문이 실행되지 않습니까? 제대로 실행되면 함수에서 $ _POST를 사용하여 삽입 쿼리를 작성할 수 있습니다. – GBD

+0

@GBD else 문을 통해 삽입 된 새로운 행의 ID를 가져와야합니다. –

답변

1

else 문에서 다음 순서로 코드를 실행 해보십시오.

먼저

$id = Jojo::insertQuery("INSERT INTO {db} SET first_name=?,last_name=?,home_phone=?,work_phone=?,mobile_phone=?,email=?,skype=?,contact_method=?,location=?,location_other=?,cv_path=?", array($fields['FirstName'],$fields['LastName'],$fields['HomePhone'],$fields['WorkPhone'],$fields['MobilePhone'],$fields['Email'],$fields['Skype'],$fields['ContactMethod'],$fields['Location'],$fields['LocationOther'],$candiatefilename)); 

둘째

Jojo::insertQuery("INSERT INTO {db_candidate_job} SET candidateID=?,jobID=?,appliedDate=?", array($id,$jobid,date("d/m/y"))); 
1

조조 문서. 당신이 새로 삽입 된 행의 ID를 얻고 싶다면, 그냥 상관없이, 당신은 행의 ID를 알고, 두 번째 테이블의 코드를 실행할 수있는 경우/다른 문 다음에, 다음

function Insert() 
{ 
    $emailCheck = $this->checkEmail($email); 

    if($emailCheck != FALSE) 
    { 
    updateQuery by $emailCheck['id'])); // The email address is found so we update the data 
    $id = $emailCheck['id']; 
    }else{ 

    $id = Jojo::insertQuery; // The email address is not found so we insert the new row 
    } 
    //at this point $id holds the id of the row. 
} 

를 사용하지 않는 case (INSERT/UPDATE).

+0

이 공백을 반환합니다. (이 http://www.jojocms.org/docs/database-queries/에 따라 –

+0

) 새로운 행 id. 당신은 전체 삽입 쿼리를 붙여 넣을 수 있습니까? 그것은 우리가 더 많은 디버그에 도움이됩니다. – GBD

+0

@GBD 완료이 새로운 혼란 스럽습니다 –

관련 문제