首页 > 解决方案 > 添加表单数据并从另一个表获取数据以在提交后形成新记录 - PHP MySQL

问题描述

表 1 中的 5 个字段来自 PHP 表单。从表 2、表 3、表 4 和表 5 中提取了 5 个字段。

这可以从 PHP 中实现吗?

尝试了多个 INSERT SELECT 和 VIEWS;不过相比新手来说有些。

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("site", "user", "password", "database");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

$new_record_id = trim($_GET["id"]); 

// Attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email, city, state) VALUES ('Peter', 'Parker', 'peterparker@mail.com', 'williamsburg', 'new york')";
if(mysqli_query($link, $sql)){
    echo "Records inserted successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Attempt insert query1 execution
$sql1 = "INSERT INTO persons (SELECT cust_type, cust_revenues, cust_since FROM customer) VALUES ('Existing', '3029', '2016') WHERE id = $new_record_id";
if(mysqli_query($link, $sql)){
    echo "Records inserted successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Attempt insert query2 execution
$sql2 = "INSERT INTO persons (SELECT order_no, order_date FROM orders) VALUES ('293048', '11/26/2016') WHERE id = $new_record_id";
if(mysqli_query($link, $sql)){
    echo "Records inserted successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

提交表单时,应使用所有 10 个字段中的数据创建一条新记录。目前,没有发生。

标签: phpmysqlforms

解决方案


我想我会用 PDO 强化的 PHP 语句和 MySQLi 替换代码。同样,由于没有给出错误代码(它返回一个干净的页面),我认为结果集太大了。我将查询替换为INSERT仅从Form. 其他表将被聚合到视图中。


推荐阅读