php - 同时将数据保存到两个表中

标签 php mysql

我有这个代码

<?php
    include 'dbconnect.php'; ?>
<head>
</head>

<body>
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
    <input type="text" name="product_name"/>
    <input type="text" name="product_price" />

        <select name="product_cat">
        <?php
        $results = $connect->query("SELECT * FROM categories ORDER BY cat_name");
            while($row = $results->fetch_array()) {
            extract($row);
            echo "<option value='"."{$cat_name}"."'>"."{$cat_name}"."</option>";
            }  
        $results->free();
        ?>
        </select>

    <input type="submit" name="submit" value="Submit">
    </form>
<?php   
    if($_POST){
    $sql = "INSERT INTO products (prd_name, prd_price, cat_id) VALUES(?,?,?)";
    if($stmt = $connect->prepare($sql) )
        {
            $productname = $_POST['product_name'];
            $productprice = $_POST['product_price'];
            $productcat = $_POST['product_cat'];
            $stmt->bind_param("sii", $productname, $productprice, $productcat);
        if($stmt->execute())
            {
                echo "Created";
                $stmt->close();
            }else{
                    die("Unable to create category.");
                }
                }else{
                die("Unable to prepare statement.");
            }
                $connect->close();
            }
        ?>    
</body>
</html>

这里的类别名称是从名为类别的表中调用的。您可以在下拉列表中看到代码。用户选择类别名称、填写产品名称和产品价格后,表单会将所有三个数据保存到名为产品的表中。

第三个表名为category_product,有两列prd_id 和cat_id(产品id 和类别id)。我需要将产品的 id 和类别与此表单一起记录到此表中。

简而言之,当仅回显名称时,如何从类别表中获取类别 id,以及如何知道产品最后保存的 id,然后将这两条记录插入到第二个(category_products)表中同一时间。

最佳答案

您可以获得insert_id从你的第一个语句到第二个语句中使用。这里有一些伪代码可以帮助您实现这一点

if($stmt->execute()) {
     $record_id = $stmt->insert_id;
     $sql = "INSERT table2(data, table1_id) VALUES($someval, $record_id)";
     // Run the query here
}

关于php - 同时将数据保存到两个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314332/

相关文章:

php - 正确的日期格式

php - 选择数据并在所选记录中查找重复值的sql查询

php - 无法连接到 mysql php/xampp

mysql - 如何在 MySQL Workbench 中直接查看 blob

php - 从 mysql 中删除批量 php 不起作用

MySql date = CURDATE() 不适用于 2 LIKE 条件

javascript - 如何使用 jQuery 提取作为 AJAX 响应接收到的 JSON 数据并将其添加到 HTML 选择下拉列表中?

PHP - 通过各种用户操作的表单安全地发送数据

php - 如何在codeigniter中加入两个数据库

mysql - 一年截断一次