gpt4 book ai didi

php - 在两个表中插入多个内容

转载 作者:行者123 更新时间:2023-11-30 22:54:58 25 4
gpt4 key购买 nike

我为用户添加产品创建了一个表单,并为每个商店设置了价格。

一共有三个简单的数据库:

Products:
- id
- token
- name

Stores:
- id
- name

Prices:
- id
- product_token
- store_id
- price

我对表单的第一个想法是创建一个 foreach 循环,在表单中存储数据:

foreach ($stores_result as $row) {
$store_id = $row->id;
$store = $row->name;

<a class="add-store" href="#" data-store="<?php echo $store_id; ?>"><?php echo $loja; ?></a>
}

当用户点击商店链接时,jQuery 向表单添加一个输入,如下所示:

    field = '<input type="text" name="price" class="form-control">';
$(this).hide().parent().after(field);

当用户提交表单时,我使用 PDO 将数据存储在数据库中:

    $token = uniqid($_POST['product'], true);

$stmt = $conn->prepare('INSERT INTO products (token, name) VALUES(:token, :name)');
$stmt->execute(array(
':token' => $token,
':nome' => $_POST['product'],
));

$stmt2 = $conn->prepare('INSERT INTO prices(product_token, price) VALUES(:product_token, :price)');
$stmt2->execute(array(
':product_token' => $token,
':price' =>$_POST['price']
));

我的问题是:

  1. 如何在价格表中插入所选商店的 ID?
  2. 为什么在价格表中将 product_token 设置为 0?

提前致谢!

最佳答案

关于问题#1

在第一个查询检查最后一个查询之后插入它。 $product_id = $stmt->lastInsertId() 然后在价格表中插入 $id。

$token = uniqid($_POST['product'], true);

$stmt = $conn->prepare('INSERT INTO products (token, name) VALUES(:token, :name)');
$stmt->execute(array(
':token' => $token,
':nome' => $_POST['product'],
));
$product_id = $stmt->lastInsertId();

$stmt2 = $conn->prepare('INSERT INTO prices(product_id, product_token, price) VALUES(:product_id, :product_token, :price)');
$stmt2->execute(array(
':product_id' => $product_id,
':product_token' => $token,
':price' =>$_POST['price']
));

关于您上面的注释。你将需要你的新列是字符串类型,你可以更改我添加的行,如下所示:

$product_id = $stmt->lastInsertId() 。 '_'.$_POST['价格'] ;

上面一行会给你类似 12_19.99 的信息

关于#2我认为 token 列是整数类型, token 是字符串而不是数字。如果您的 sql_mode 不严格,那么它将截断字符串。您可能必须将表更改为正确的列类型。

关于php - 在两个表中插入多个内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26818978/

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