gpt4 book ai didi

javascript - 带有非动态输入字段的动态输入字段插入到两个 mysql 表中不起作用

转载 作者:行者123 更新时间:2023-11-29 15:37:03 26 4
gpt4 key购买 nike

我的数据库中有两个表

表 1 - 订单

 - id -Primary Key
- name
- date

表 2 - 产品

 - product_id - Primary Key
- product
- id - Foreign Key

我有三个输入字段:名称、日期和产品。产品输入字段是动态输入字段。

我想要做的是将名称和日期输入字段插入到订单 MYSQL 表中,产品动态输入字段将数据插入到产品 MYSQL 表中,该表是订单表的子表,因此 id 号需要匹配。

我无法将数据插入到两个sql表中,

请您仔细阅读以下内容并提供一些帮助。

另请注意,我对编码非常陌生。

    <?php

if(isset($_POST['submit'])){
//connect to db
$mysqli = NEW MySQLi('localhost','root','','dbtest');

$name = $_POST['name'];
$date = $_POST['date'];
$product = $_POST['product'];

foreach($name AS $key => $value){

$sql = "INSERT INTO orders(name, date) VALUES
('". $mysqli->real_escape_string($value)."',
'". $mysqli->real_escape_string($date[$key])."'
)";

$insert = $mysqli->query($sql);

$newOrderId = mysqli_insert_id($mysqli);

if($insert){
$sql2 = "INSERT INTO products(product) VALUES
('". $mysqli->real_escape_string($product[$key])."')";

$insert = $mysqli->query($sql2);
}

echo"<script language='javascript'>alert('successfully inserted')</script>";
echo"<script>document.location='index.php';</script>";

}

$mysqli->close();
}

?>

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(e){
//Variables
var html = '<p /><div>Product: <input type="TEXT" name="product[]" id="childproduct"/> <a href="#" id="remove">X</a></div>';
var maxRows = 5;
var x = 1;

//Add Rows to the form
$("#add").click(function(e){
if(x <= maxRows){
$("#container").append(html);
x++;
}
});

//Remove rows from the from
$("#container").on('click','#remove', function(e){

$(this).parent('div').remove();
x--;
});

});

</script>
</head>

<body>
<form method="POST">
<div id="">
Name: <input type="TEXT" name="name[]" id="name"/>
</div><p />
<div id="">
Date: <input type="TEXT" name="date[]" id="date"/>
</div><p />
<div id="container">
Product: <input type="TEXT" name="product[]" id="product"/>
<a href="#" id="add">Add More</a>
</div><p />
<p />
<input type="SUBMIT" name="submit" />
</form>
</body>
</html>

最佳答案

根据我的理解,您需要根据名称和日期在订单表中保存一条记录,然后需要在名为“产品”的子表中保存多个产品,但您循环使用了错误的变量“名称”,因为您只有1 个“名称”和“日期”字段,但有多个产品。请尝试运行以下代码,希望它能帮到您

if (isset($_POST['submit'])) {
//connect to db
$mysqli = NEW MySQLi('localhost', 'root', '', 'dbtest');

$name = $_POST['name'];
$date = $_POST['date'];
$product = $_POST['product'];

$name1 = current($name);
$date1 = current($date);

$sql = "INSERT INTO orders(name, date) VALUES
('" . $mysqli->real_escape_string($name1) . "',
'" . $mysqli->real_escape_string($date1) . "'
)";

$insert = $mysqli->query($sql);

$newOrderId = mysqli_insert_id($mysqli);

if ($insert) {
foreach ($product AS $key => $value) {


$sql2 = "INSERT INTO products(product) VALUES
('" . $mysqli->real_escape_string($value) . "')";

$insert = $mysqli->query($sql2);
}

echo"<script language='javascript'>alert('successfully inserted')</script>";
echo"<script>document.location='index.php';</script>";
}

$mysqli->close();
}

关于javascript - 带有非动态输入字段的动态输入字段插入到两个 mysql 表中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58133709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com