2016-11-15 211 views
0

我試圖插入值到mysql數據庫表中調用pointofcontact,然後檢索主鍵稱爲pocid插入到另一個名爲學生的表。插入值到MySQL數據庫並檢索它們插入到另一個表

不知何故,我的代碼總是返回pocid爲0,我不知道爲什麼。很高興得到一些幫助。任何幫助將不勝感激!這裏是我的代碼:

$query="insert into pointofcontact(Username,Password,FirstName,LastName,ContactNumber,EmailAddress,Address,Gender,Status,BackupContactNumber,ProfilePic) values ('$username','$password','$firstname','$lastname','$mobilenumber','$email','$address','$gender','Normal','$backup','$attch')"; 
    if($con->query($query) === TRUE) 
    { 
     $query2="select POCID from pointofcontact where username= '$username'"; 
     $result2=$con->query($query2); 
     if($result2 ->num_rows > 0) 
     { 
      while($row2 = $result2->fetch_assoc()) 
      { 
       $pocid = $row2['POCID']; 
       $query3= "insert into student(StudentFirstName, StudentLastName, Allergies, NRIC, POCID) values ('$cfirstname','$clastname','$callergies','$cnric','$POCID')"; 
      } 
      if($con->query($query3) === TRUE) 
      { 

      } 
      else 
      { 

      } 
     } 
    } 
    else 
    { 
     echo "error"; 
    } 
+0

我不是這方面的專家,但你可能要考慮使用觸發器來做到這一點。要麼,要麼你將不得不包裝你的插入和選擇在一個單一的交易。 –

+0

0是否添加到表中?或者它顯示錯誤的價值。 –

回答

1

我沒有測試過這一點,但它應該做你需要的東西:

// assuming proper validation and escaping is completed... 

if($con->query("INSERT INTO pointofcontact (Username,Password,FirstName,LastName,ContactNumber,EmailAddress,Address,Gender,Status,BackupContactNumber,ProfilePic) VALUES ('$username','$password','$firstname','$lastname','$mobilenumber','$email','$address','$gender','Normal','$backup','$attch');"){ 
    $POCID=$con->insert_id; 
    if($con->query("INSERT INTO student (StudentFirstName, StudentLastName, Allergies, NRIC, POCID) VALUES ('$cfirstname','$clastname','$callergies','$cnric','$POCID');")){ 
     // Pass 
    }else{ 
     // Fail 
    } 
}else{ 
    // Fail 
} 
0

檢查您的數據庫表設計爲POCID列。當你創建了一個表,你必須將其添加主鍵和AUTO_INCREMENT ...

CREATE TABLE table_name (id int primary key auto_increment,....) 

如果你已經這樣做的話,使用mysqli_insert_id()來獲取最後插入的ID。

+0

也許這就是爲什麼它總是加0表 –

+0

我知道。它已經完成了。能夠從我的網站應用程序獲得通過c#編碼的pocid,但無法通過php獲取這些信息。 –

+0

然後將最後插入的ID存儲到變量中,然後根據此ID獲取值。 –