通过Web表单使用php将数据插入多个表

时间:2010-02-14 21:05:34

标签: php

我最近一直在研究php和mysql,目前正在使用php和mysql开发一个在线Web表单。在表单中,我有多个表,我需要提交数据。我试过这段代码;

 $required_fields = array('event_type','accommodation_type','public_user','comments','grand_total');
    $required_fields2 = array('first_name','last_name','gender','age_group');
    $errors = array_merge($errors, check_required_fields($required_fields, $_POST));
    $errors2 = array_merge($errors2, check_required_fields($required_fields2, $_POST));

    $fields_with_lengths = array('event_type' => 50, 'accommodation_type' => 50, 'public_user' => 50,'comments' => 10000,'grand_total' => 50);
    $fields_with_lengths2 = array('first_name' => 50, 'last_name' => 50, 'gender' => 50,'age_group' => 50);
    $errors = array_merge($errors, check_max_field_lengths($fields_with_lengths, $_POST));
    $errors2 = array_merge($errors2, check_max_field_lengths($fields_with_lengths2, $_POST));

    $event_type = trim(mysql_prep($_POST['event_type']));
    $accommodation_type= trim(mysql_prep($_POST['accommodation_type']));
    $public_user = trim(mysql_prep($_POST['public_user']));
    $comments = trim(mysql_prep($_POST['comments']));
    $grand_total = trim(mysql_prep($_POST['grand_total']));

    if (empty($errors)){
        $query = "INSERT INTO event_registration (event_type, accommodation_type, public_user, comments, grand_total) VALUES ('{$event_type}','{$accommodation_type}','{$public_user}','{$comments}','{$grand_total}')";
        $result = mysql_query($query, $connection);

        if($result){
            $message = "The User was successfully registered";
        } else{
            $message = "The User could not be registered";
            $message .= "<br />" . mysql_error();
        }
    } else{

        if(count($errors)==1){
            $message = "There was 1 error in the form.";
        } else {
            $message = "There were" . count($errors) . " error in the form.";
        }   
    }

} else { // Form has not been submitted
    $event_type = "";
    $accommodation_type = "";
    $public_user = "";
    $comments = "";
    $grand_total = "";
}

1 个答案:

答案 0 :(得分:2)

一般来说,这是您将数据从一个表单发布到两个表中的方式:

<?php
$dbhost="server_name";
$dbuser="database_user_name";
$dbpass="database_password";
$dbname="database_name";

$con=mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to the database:' . mysql_error());

$mysql_select_db($dbname, $con);

$sql="INSERT INTO table1 (table1id, columnA, columnB) 
         VALUES (' ', '$_POST[columnA value]','$_POST[columnB value]')";

mysql_query($sql);

$lastid=mysql_insert_id();

$sql2="INSERT INTO table2 (table1id, table2id, columnA, columnB)
              VALUES ($lastid, ' ', '$_POST[columnA value]','$_POST[columnB value]')";

//table1id & table1id are auto-incrementing primary keys 

mysql_query($sql2);

mysql_close($con);

?>

此示例显示如何将表单中的数据插入到多个表中,我没有显示任何安全措施。