2015-02-10 23 views
-2

我目前正在開發一個項目,並且遇到了一些問題。PHP在不同的表格中創建條目

我正在尋找一種方法來加入兩個不同的表。當您在一個表中創建一個條目時,它將自動在另一個表中創建一個條目。

例如,可以說我正在爲系統創建新病人。當我將所有數據輸入表格並單擊提交時,所有數據將存儲在獨特患者ID下的患者表中。 現在我已經在患者表中爲Bob創建了一行,我希望它在會計表中爲Bob創建一行。這樣會計數據將與患者數據相關聯。 因此,當我爲新患者提交申請時,我會在會計表中創建一個新行,可以引用爲其創建的患者。

我不知道如果我做了清楚我的問題..

編輯: 感謝所有幫助!我設法得到它,並用下面的工作..

<? 
session_start();  

include "database_connect.inc"; 

$sql="INSERT into patients SET patient_fname='".addslashes($_POST['fname'])."', 
           patient_initial='".$_POST['initial']."', 
           patient_lname='".addslashes($_POST['lname'])."', 
           address='".addslashes($_POST['address'])."', 
           city='".addslashes($_POST['city'])."', 
           state='".$_POST['state']."', 
           zipcode='".$_POST['zip']."', 
           phone1label='".$_POST['phone1label']."', 
           phone1='".$_POST['phone1']."', 
           phone2label='".$_POST['phone2label']."', 
           phone2='".$_POST['phone2']."', 
           phone3label='".$_POST['phone3label']."', 
           phone3='".$_POST['phone3']."', 
           phone4label='".$_POST['phone4label']."', 
           phone4='".$_POST['phone4']."', 
           dateofinjury='".$_POST['dateofinjury']."', 
           office_location='".$_POST['officelocation']."', 
           law_office1='".$_POST['lawoffice1']."', 
           law_office2='".$_POST['lawoffice2']."', 
           insurance1='".$_POST['insurance1']."', 
           pip='".$_POST['pip']."', 
           claim1='".$_POST['claim1']."', 
           insurance3='".$_POST['insurance3']."', 
           claim3='".$_POST['claim3']."'"; 

$result = mysql_query($sql,$cn); 
if (!$result) die("ERROR - Query failed while trying to add a new patient record!<br>".$sql); 

$sql="INSERT INTO accounts (patient_id,patient_name,patient_lname) VALUES(LAST_INSERT_ID(),'".$_POST['fname']."','".$_POST['lname']."')"; 


if (!mysql_query($sql,$cn)) 
    { 
    die('Error' . mysql_error()); 
    } 

header("location:createpatient.php"); 

?>

+0

我知道人們聘請程序員的原因是什麼 – Strawberry 2015-02-10 01:03:40

+0

你用腳本走多遠? – 2015-02-10 01:07:34

+2

歡迎來到Stackoverflow。代碼應該包含在問題中,以便其他人可以發現當前工作中的問題,然後提供幫助。 [幫助中心](http://stackoverflow.com/help)是查看哪些問題被接受以及什麼是[off-topic](http://stackoverflow.com/help/on-topic)的好地方。 – 2015-02-10 01:08:03

回答

0

它那更好,我更喜歡建議你這個概念:

例如:

table1 name: patients 
table2 name: accounting 

indicator: 
patient_id in patients table1 
accounting_id in accounting table2 

那麼,讓我們來做吧!:

<?php  
$sql="INSERT INTO patients (patient_fname, ...) 
VALUES ('$_POST[patient_fname]','....')"; 
mysql_query($sql); 
if (!mysql_query($sql,$cn)) 
    { 
    die('Error' . mysql_error()); 
    } 

$getIdInTable1 = mysql_query("SELECT LAST_INSERT_ID() AS patient_id 
FROM patients"); 
$setID = mysql_fetch_assoc($getIdInTable1); 

$sql="INSERT INTO accounting (patient_id, ....) 
VALUES ({$setID['accounting_id']}, '$_POST['patient_id']','....')"; 
if (!mysql_query($sql,$cn)) 
    { 
    die('Error' . mysql_error()); 
    } 

mysql_close($db_server); 
header("location:createpatient.php"); 
exit(); 
?> 

'希望這對你有幫助。

+0

謝謝,這有點幫助。但我仍然有一個問題。當我插入患者時,我將id設爲auto_increment,所以我實際上並沒有實現一個值。當我運行該腳本時,由於ID是auto_incr,因此我的patient_id帳戶總是被省略爲空 – Elijah 2015-02-10 02:30:34

+0

,只需刪除括號內的id即可。 – 2015-02-10 02:44:28

+0

感謝您花時間回答我的問題。但是,我仍然遇到了patient_id帳戶始終爲0的問題。我並沒有完全理解這一點。我將在當前腳本中編輯我的問題。 – Elijah 2015-02-11 20:57:39

0

起初試試看,然後問你在哪裏得到真正卡住。

如果我是你,我會嘗試這樣的事情。

BEGIN; 
    INSERT INTO patients(name,details) 
     VALUES('test', 'test'); 
    INSERT INTO patient_profiles (patient_id, information) 
     VALUES(LAST_INSERT_ID(),'something useful'); 
    COMMIT; 

請參閱manual

0

比你使用手動進步最大的代碼基於你的問題來連接表,而不是ID