2016-11-15 17 views
0

私は、pointofcontactという名前のmysqlデータベーステーブルに値を挿入し、pocidというプライマリキーを取得して、studentsという別のテーブルに挿入しようとしています。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,....) 

あなたはすでに、その後これをしなかった場合は、最後に挿入IDを取得するために)(mysqli_insert_idを使用しています。

+0

テーブルに0を常に追加している理由はありますか –

+0

私は知っています。すでに完了しています。 C#でコード化されたWebアプリケーションからpocidを取得できますが、この情報をPHP経由で取得することはできません。 –

+0

最後に挿入されたIDを変数に格納してから、このIDごとに値を取得します。 –

関連する問題