PHP在不同的表中创建条目

时间:2015-02-10 01:00:24

标签: php mysql

我目前正在开展一个项目并坚持不懈。

我正在寻找一种方法来加入两个不同的表。在一个表中创建条目时,它将自动在另一个表中创建一个条目。

例如,假设我正在为系统创建新患者。当我将所有数据输入到表单中并单击“提交”时,所有数据都将存储在患者表中唯一的患者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");

&GT;

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

比使用手动渐进式最大代码连接表而不是id

更好

答案 2 :(得分: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();
?>

'希望这真的对你有帮助。