Php 生成具有不同选项的产品的库存水平

Php 生成具有不同选项的产品的库存水平,php,mysql,codeigniter,attributes,content-management-system,Php,Mysql,Codeigniter,Attributes,Content Management System,我正在为一家网上商店建立一个cms,在那里,产品可以有多达5种不同的选择,即尺寸、颜色、味道、材料和风格。我需要创建代码来为库存控制记录生成字段,它必须为每个可能的选项保留单独的记录,例如红色大小8、蓝色大小8、红色大小9条带等。以下是我当前的数据库结构: 产品 产品ID 常见值,如价格、名称和说明 产品属性 属性ID 属性组ID 属性名 产品库存控制 股票ID 产品ID 阿提布特1号 阿提布特2号 阿提布特3号 阿提布特4号 阿提布特5号 库存水平 使用codeigniter和php,编写此代

我正在为一家网上商店建立一个cms,在那里,产品可以有多达5种不同的选择,即尺寸、颜色、味道、材料和风格。我需要创建代码来为库存控制记录生成字段,它必须为每个可能的选项保留单独的记录,例如红色大小8、蓝色大小8、红色大小9条带等。以下是我当前的数据库结构:

产品 产品ID

常见值,如价格、名称和说明

产品属性 属性ID

属性组ID

属性名

产品库存控制 股票ID

产品ID

阿提布特1号

阿提布特2号

阿提布特3号

阿提布特4号

阿提布特5号

库存水平

使用codeigniter和php,编写此代码的最佳方法是什么

编辑

这是我目前正在尝试的代码,但肯定有比1233行代码更好的方法吗

public function genStockRecords($id)
{

    $this->db->select("ps_name");
    $query = $this->db->get("product_selects");
    $selectList = $query->result();

    foreach($selectList as $select)
    {

        $selectName = $select->ps_name;
        echo $selectName." - ";
        $$selectName = array();

    }
    unset($selectList);

    foreach($_SESSION['options'] as $option)
    {

        $option = explode("|", $option);
        ${$option[0]}[] = $option[1];

    }

    if(!empty($Size))
    {

        foreach($Size as $sizeValue)
        {

            $data['psc_opt_1'] = $sizeValue;

            if(!empty($Colour))
            {

                foreach($Colour as $colourValue)
                {

                    $data['psc_opt_2'] = $colourValue;

                    if(!empty($Flavour))
                    {

                        foreach($Flavour as $flavourValue)
                        {

                            $data['psc_opt_3'] = $flavourValue;

                            if(!empty($Material))
                            {

                                foreach($Material as $materialValue)
                                {

                                    $data['psc_opt_4'] = $materialValue;

                                    if(!empty($Style))
                                    {

                                        foreach($style as $styleValue)
                                        {

                                            $data['psc_opt_5'] = $styleValue;

                                            $this->db->select("psc_id");
                                            $this->db->where("psc_prod_id", $id);

                                            foreach($data as $field => $value)
                                            {

                                                $this->db->where($field, $value);

                                            }

                                            $query = $this->db->get("product_stock_control", 1);

                                            if($query->num_rows == 0)
                                            {

                                                $data["psc_prod_id"] = $id;
                                                $this->db->insert("product_stock_control", $data);

                                            }

                                        }

                                    }
                                    else
                                    {

                                        $data['psc_opt_5'] = null;

                                        $this->db->select("psc_id");
                                        $this->db->where("psc_prod_id", $id);

                                        foreach($data as $field => $value)
                                        {

                                            $this->db->where($field, $value);

                                        }

                                        $query = $this->db->get("product_stock_control", 1);

                                        if($query->num_rows == 0)
                                        {

                                            $data["psc_prod_id"] = $id;
                                            $this->db->insert("product_stock_control", $data);

                                        }                                               

                                    }


                                }

                            }
                            else
                            {

                                $data['psc_opt_4'] = null;

                                if(!empty($Style))
                                {

                                    foreach($style as $styleValue)
                                    {

                                        $data['psc_opt_5'] = $styleValue;

                                        $this->db->select("psc_id");
                                        $this->db->where("psc_prod_id", $id);

                                        foreach($data as $field => $value)
                                        {

                                            $this->db->where($field, $value);

                                        }

                                        $query = $this->db->get("product_stock_control", 1);

                                        if($query->num_rows == 0)
                                        {

                                            $data["psc_prod_id"] = $id;
                                            $this->db->insert("product_stock_control", $data);

                                        }

                                    }

                                }
                                else
                                {

                                    $data['psc_opt_5'] = null;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }                                               

                                }                                   

                            }

                        }

                    }
                    else
                    {

                        $data['psc_opt_3'] = null;

                        if(!empty($Material))
                        {

                            foreach($Material as $materialValue)
                            {

                                $data['psc_opt_4'] = $materialValue;

                                if(!empty($Style))
                                {

                                    foreach($style as $styleValue)
                                    {

                                        $data['psc_opt_5'] = $styleValue;

                                        $this->db->select("psc_id");
                                        $this->db->where("psc_prod_id", $id);

                                        foreach($data as $field => $value)
                                        {

                                            $this->db->where($field, $value);

                                        }

                                        $query = $this->db->get("product_stock_control", 1);

                                        if($query->num_rows == 0)
                                        {

                                            $data["psc_prod_id"] = $id;
                                            $this->db->insert("product_stock_control", $data);

                                        }

                                    }

                                }
                                else
                                {

                                    $data['psc_opt_5'] = null;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }                                               

                                }


                            }

                        }
                        else
                        {

                            $data['psc_opt_4'] = null;

                            if(!empty($Style))
                            {

                                foreach($style as $styleValue)
                                {

                                    $data['psc_opt_5'] = $styleValue;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }

                                }

                            }
                            else
                            {

                                $data['psc_opt_5'] = null;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }                                               

                            }                                   

                        }

                    }

                }

            }
            else
            {

                $data['psc_opt_2'] = null;

                if(!empty($Flavour))
                {

                    foreach($Flavour as $flavourValue)
                    {

                        $data['psc_opt_3'] = $flavourValue;

                        if(!empty($Material))
                        {

                            foreach($Material as $materialValue)
                            {

                                $data['psc_opt_4'] = $materialValue;

                                if(!empty($Style))
                                {

                                    foreach($style as $styleValue)
                                    {

                                        $data['psc_opt_5'] = $styleValue;

                                        $this->db->select("psc_id");
                                        $this->db->where("psc_prod_id", $id);

                                        foreach($data as $field => $value)
                                        {

                                            $this->db->where($field, $value);

                                        }

                                        $query = $this->db->get("product_stock_control", 1);

                                        if($query->num_rows == 0)
                                        {

                                            $data["psc_prod_id"] = $id;
                                            $this->db->insert("product_stock_control", $data);

                                        }

                                    }

                                }
                                else
                                {

                                    $data['psc_opt_5'] = null;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }                                               

                                }


                            }

                        }
                        else
                        {

                            $data['psc_opt_4'] = null;

                            if(!empty($Style))
                            {

                                foreach($style as $styleValue)
                                {

                                    $data['psc_opt_5'] = $styleValue;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }

                                }

                            }
                            else
                            {

                                $data['psc_opt_5'] = null;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }                                               

                            }                                   

                        }

                    }

                }
                else
                {

                    $data['psc_opt_3'] = null;

                    if(!empty($Material))
                    {

                        foreach($Material as $materialValue)
                        {

                            $data['psc_opt_4'] = $materialValue;

                            if(!empty($Style))
                            {

                                foreach($style as $styleValue)
                                {

                                    $data['psc_opt_5'] = $styleValue;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }

                                }

                            }
                            else
                            {

                                $data['psc_opt_5'] = null;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }                                               

                            }


                        }

                    }
                    else
                    {

                        $data['psc_opt_4'] = null;

                        if(!empty($Style))
                        {

                            foreach($style as $styleValue)
                            {

                                $data['psc_opt_5'] = $styleValue;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }

                            }

                        }
                        else
                        {

                            $data['psc_opt_5'] = null;

                            $this->db->select("psc_id");
                            $this->db->where("psc_prod_id", $id);

                            foreach($data as $field => $value)
                            {

                                $this->db->where($field, $value);

                            }

                            $query = $this->db->get("product_stock_control", 1);

                            if($query->num_rows == 0)
                            {

                                $data["psc_prod_id"] = $id;
                                $this->db->insert("product_stock_control", $data);

                            }                                               

                        }                                   

                    }

                }



            }

        }

    }
    else
    {

        $data['psc_opt_1'] = null;

        if(!empty($Colour))
        {

            foreach($Colour as $colourValue)
            {

                $data['psc_opt_2'] = $colourValue;

                if(!empty($Flavour))
                {

                    foreach($Flavour as $flavourValue)
                    {

                        $data['psc_opt_3'] = $flavourValue;

                        if(!empty($Material))
                        {

                            foreach($Material as $materialValue)
                            {

                                $data['psc_opt_4'] = $materialValue;

                                if(!empty($Style))
                                {

                                    foreach($style as $styleValue)
                                    {

                                        $data['psc_opt_5'] = $styleValue;

                                        $this->db->select("psc_id");
                                        $this->db->where("psc_prod_id", $id);

                                        foreach($data as $field => $value)
                                        {

                                            $this->db->where($field, $value);

                                        }

                                        $query = $this->db->get("product_stock_control", 1);

                                        if($query->num_rows == 0)
                                        {

                                            $data["psc_prod_id"] = $id;
                                            $this->db->insert("product_stock_control", $data);

                                        }

                                    }

                                }
                                else
                                {

                                    $data['psc_opt_5'] = null;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }                                               

                                }


                            }

                        }
                        else
                        {

                            $data['psc_opt_4'] = null;

                            if(!empty($Style))
                            {

                                foreach($style as $styleValue)
                                {

                                    $data['psc_opt_5'] = $styleValue;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }

                                }

                            }
                            else
                            {

                                $data['psc_opt_5'] = null;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }                                               

                            }                                   

                        }

                    }

                }
                else
                {

                    $data['psc_opt_3'] = null;

                    if(!empty($Material))
                    {

                        foreach($Material as $materialValue)
                        {

                            $data['psc_opt_4'] = $materialValue;

                            if(!empty($Style))
                            {

                                foreach($style as $styleValue)
                                {

                                    $data['psc_opt_5'] = $styleValue;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }

                                }

                            }
                            else
                            {

                                $data['psc_opt_5'] = null;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }                                               

                            }


                        }

                    }
                    else
                    {

                        $data['psc_opt_4'] = null;

                        if(!empty($Style))
                        {

                            foreach($style as $styleValue)
                            {

                                $data['psc_opt_5'] = $styleValue;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }

                            }

                        }
                        else
                        {

                            $data['psc_opt_5'] = null;

                            $this->db->select("psc_id");
                            $this->db->where("psc_prod_id", $id);

                            foreach($data as $field => $value)
                            {

                                $this->db->where($field, $value);

                            }

                            $query = $this->db->get("product_stock_control", 1);

                            if($query->num_rows == 0)
                            {

                                $data["psc_prod_id"] = $id;
                                $this->db->insert("product_stock_control", $data);

                            }                                               

                        }                                   

                    }

                }

            }

        }
        else
        {

            $data['psc_opt_2'] = null;

            if(!empty($Flavour))
            {

                foreach($Flavour as $flavourValue)
                {

                    $data['psc_opt_3'] = $flavourValue;

                    if(!empty($Material))
                    {

                        foreach($Material as $materialValue)
                        {

                            $data['psc_opt_4'] = $materialValue;

                            if(!empty($Style))
                            {

                                foreach($style as $styleValue)
                                {

                                    $data['psc_opt_5'] = $styleValue;

                                    $this->db->select("psc_id");
                                    $this->db->where("psc_prod_id", $id);

                                    foreach($data as $field => $value)
                                    {

                                        $this->db->where($field, $value);

                                    }

                                    $query = $this->db->get("product_stock_control", 1);

                                    if($query->num_rows == 0)
                                    {

                                        $data["psc_prod_id"] = $id;
                                        $this->db->insert("product_stock_control", $data);

                                    }

                                }

                            }
                            else
                            {

                                $data['psc_opt_5'] = null;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }                                               

                            }


                        }

                    }
                    else
                    {

                        $data['psc_opt_4'] = null;

                        if(!empty($Style))
                        {

                            foreach($style as $styleValue)
                            {

                                $data['psc_opt_5'] = $styleValue;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }

                            }

                        }
                        else
                        {

                            $data['psc_opt_5'] = null;

                            $this->db->select("psc_id");
                            $this->db->where("psc_prod_id", $id);

                            foreach($data as $field => $value)
                            {

                                $this->db->where($field, $value);

                            }

                            $query = $this->db->get("product_stock_control", 1);

                            if($query->num_rows == 0)
                            {

                                $data["psc_prod_id"] = $id;
                                $this->db->insert("product_stock_control", $data);

                            }                                               

                        }                                   

                    }

                }

            }
            else
            {

                $data['psc_opt_3'] = null;

                if(!empty($Material))
                {

                    foreach($Material as $materialValue)
                    {

                        $data['psc_opt_4'] = $materialValue;

                        if(!empty($Style))
                        {

                            foreach($style as $styleValue)
                            {

                                $data['psc_opt_5'] = $styleValue;

                                $this->db->select("psc_id");
                                $this->db->where("psc_prod_id", $id);

                                foreach($data as $field => $value)
                                {

                                    $this->db->where($field, $value);

                                }

                                $query = $this->db->get("product_stock_control", 1);

                                if($query->num_rows == 0)
                                {

                                    $data["psc_prod_id"] = $id;
                                    $this->db->insert("product_stock_control", $data);

                                }

                            }

                        }
                        else
                        {

                            $data['psc_opt_5'] = null;

                            $this->db->select("psc_id");
                            $this->db->where("psc_prod_id", $id);

                            foreach($data as $field => $value)
                            {

                                $this->db->where($field, $value);

                            }

                            $query = $this->db->get("product_stock_control", 1);

                            if($query->num_rows == 0)
                            {

                                $data["psc_prod_id"] = $id;
                                $this->db->insert("product_stock_control", $data);

                            }                                               

                        }


                    }

                }
                else
                {

                    $data['psc_opt_4'] = null;

                    if(!empty($Style))
                    {

                        foreach($style as $styleValue)
                        {

                            $data['psc_opt_5'] = $styleValue;

                            $this->db->select("psc_id");
                            $this->db->where("psc_prod_id", $id);

                            foreach($data as $field => $value)
                            {

                                $this->db->where($field, $value);

                            }

                            $query = $this->db->get("product_stock_control", 1);

                            if($query->num_rows == 0)
                            {

                                $data["psc_prod_id"] = $id;
                                $this->db->insert("product_stock_control", $data);

                            }

                        }

                    }
                    else
                    {

                        $data['psc_opt_5'] = null;

                        $this->db->select("psc_id");
                        $this->db->where("psc_prod_id", $id);

                        foreach($data as $field => $value)
                        {

                            $this->db->where($field, $value);

                        }

                        $query = $this->db->get("product_stock_control", 1);

                        if($query->num_rows == 0)
                        {

                            $data["psc_prod_id"] = $id;
                            $this->db->insert("product_stock_control", $data);

                        }                                               

                    }                                   

                }

            }   

        }   

    }

}

这个问题更一般。您可以使用或之类的网站生成CRUD代码,然后从那里开始。

@gorelative查看上面的编辑