-1

サイズ、色、味、素材、スタイルの 5 つの異なるオプションを製品に設定できるオンライン ショップの cms を構築しています。赤のサイズ 8、青のサイズ 8、赤のサイズ 9 ストライプなど、可能なオプションごとに個別のレコードを保持する必要がある在庫管理レコードのフィールドを生成するコードを作成する必要があります。現在のデータベース構造は次のとおりです。

製品

製品番号

価格、名前、説明などの一般的な値

製品の属性

属性 ID

属性グループ ID

属性名

製品在庫管理

ストックID

製品番号

属性 1 ID

属性 2 ID

属性 3 ID

属性 4 ID

属性 5 ID

在庫量

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);

                        }                                               

                    }                                   

                }

            }   

        }   

    }

}
4

1 に答える 1

1

この質問はより一般的です。formigniter.comthephpcode.comなどの Web サイトを使用して CRUD コードを生成し、そこから開始できます。

于 2012-07-16T12:10:49.343 に答える