Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 同时将数据保存到两个表中_Php_Mysql - Fatal编程技术网

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

Php 同时将数据保存到两个表中,php,mysql,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" n

我有这个密码

<?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>

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

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

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

您可以从第一条语句中获取要在第二条中使用的记录。这里有一些伪代码可以帮助您实现这一点

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

首先,我会使用“{$cat_name}”,所以你有你的catId。然后,对于最后一个insert id,使用mysqli\u insert\u id返回最后一个查询的idinsert@Psychokiller1888可以我会试着再打给你。谢谢你的建议。谢谢你,先生,但是我如何获得类别名称的id呢?按照我在上面的评论中写的那样传递它