如何将子表值与父表行关联并插入子表值对应于php中的父表行

Posted

技术标签:

【中文标题】如何将子表值与父表行关联并插入子表值对应于php中的父表行【英文标题】:how to associate child table values with parent table row and inserts child tables values corresponds to parent table row in php 【发布时间】:2017-09-12 09:09:40 【问题描述】:

我有 2 个嵌套表。父表行包含子表。如果需要,两个表都可以通过添加按钮添加行。父表值插入到数据库的 product_size 表中,子表值插入到 product_color 表中。父表包含大小,子表包含该大小的项目的颜色和数量。我想在父表行中插入子表值(颜色和数量)。意味着父第一行子表值应仅跨父第一行插入,父表第二行中的子表值应跨父第二行插入。目前,我的代码从父表的所有行中获取所有子表值,并在第一行中插入数据库,然后再次从父表的所有行中获取所有子表值,并在数据库的第二行中插入父表。请检查我的代码并帮助我指出我的代码中的问题所在。 /php 代码/

if (isset($_POST['submit']))
   
    $con=mysqli_connect("localhost", "root", "");
    mysqli_select_db($con,"login"); 

    for ($i=0; $i<count($_POST['size']); $i++)

        $size = $_POST['size'][$i];          

        $qry1="INSERT INTO product_size (product_size) VALUES ('$size')";

        $result1=mysqli_query($con,$qry1);
        $product_size_id = mysqli_insert_id($con);                    

        for ($j=0; $j<count($_POST['color']); $j++)

            $quantity = $_POST['dress_quantity'][$j];

            $color = $_POST['color'][$j];

            $qry2="INSERT INTO product_color (product_size_id, product_color, product_quantity) VALUES ('$product_size_id', '$color', '$quantity')";

            $result2=mysqli_query($con,$qry2); 
            if($result2)
            
                echo '<script>alert("Record Added Successfully!")</script>';
                echo '<script>window.location="try.php"</script>';
            
            else      
            
                die("Error While Adding Stock! Please Try Again.");
            
        
    

【问题讨论】:

@pedram shabani 你能帮忙吗? 【参考方案1】:

我在本地服务器上测试过。工作正常

    $con=mysqli_connect("localhost", "root", "");
    mysqli_select_db($con,"login"); 
  // $size1 = array("50", "60", "70");
  // $color1 =array("red", "blue", "green");
  // $quantity1 = array("10", "20", "30");
    for ($i=0; $i<count($_POST['size']); $i++)

        $size = $size1[$i];   

        $qry1="INSERT INTO product_size (product_size) VALUES ('$size')";
        $result1=mysqli_query($con,$qry1);
        var_dump($result1);
        echo "<br>";

        $product_size_id = mysqli_insert_id($con);                    

        for ($j=0; $j<count($size); $j++)

            $quantity = $_POST['dress_quantity'][$i];

            $color = $_POST['color'][$i];

            $qry2="INSERT INTO product_color (product_size_id, product_color, product_quantity) VALUES ('$product_size_id', '$color', '$quantity')";

            $result2=mysqli_query($con,$qry2); 
            if($result2)
            
                echo '<script>alert("Record Added Successfully!")</script>';
             //   echo '<script>window.location="try.php"</script>';
            
            else      
            
                die("Error While Adding Stock! Please Try Again.");
            
        
    

【讨论】:

谢谢,但它的静态值不适用于用户输入的颜色和数量 请查看链接了解我的网站***.com/questions/46149794/…的详细工作情况@ 我更新了答案。我没有收到你的表格。因为这是使用静态值 谢谢让我检查一下,也请访问我在上面评论中分享的链接 我没找到你改的地方?它看起来一样:)

以上是关于如何将子表值与父表行关联并插入子表值对应于php中的父表行的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何将子表与父表 Sqlite 连接起来

为啥我需要将子表的主键作为父表的外键,而不是相反的 1:1 识别关系?

Postgres db删除父表行不删除子表行数据?

mycat 分片

有外键约束的子表插入数据时出现的错误

子表,父表;一对多,多对一;主键,外键梳理。