插入数据库后获取所有 url GET 值和一些随机值

Get all url GET values and some random values after insert in db

我有一个自定义表单,它有 ~6 个自定义 intut,1-20 可以是随机的我如何使用 $_GET 获取随机输入并将它们放入 col atributes:

    <form method="GET" action="products.php" enctype="multipart/form-data">
                                            <li>
                            <label>Name</label>
                            <input required  class="scurtI" type="text" name="prod_name" value="<?= $_GET['prod_name'] ?>" placeholder="">
                        </li>
                                                <li>
                            <label>Description</label>
                            <input required  class="scurtI" type="text" name="prod_descr" value="<?= $_GET['prod_descr'] ?>" placeholder="">
                        </li>
                                                <li>
                            <label>Meta - Title</label>
                            <input required  class="scurtI" type="text" name="prod_meta_title" value="<?= $_GET['prod_meta_title'] ?>" placeholder="">
                        </li>
                                                <li>
                            <label>Meta - Description</label>
                            <input required  class="scurtI" type="text" name="prod_meta_desc" value="<?= $_GET['prod_meta_desc'] ?>" placeholder="">
                        </li>
                                                                        <li>
                            <label>Meta - Keywords</label>
                            <input required  class="scurtI" type="text" name="prod_meta_keys" value="<?= $_GET['prod_meta_keys'] ?>" placeholder="">
                        </li>
                                                                        <li>
                            <label>Price</label>
                            <input required  class="scurtI" type="text" name="prod_price" value="<?= $_GET['prod_price'] ?>" placeholder="">
                        </li>
                                                                                                <li>
                            <label>Currency</label>
                            <select name="prod_curency" class="focusSelect">
                            <option value="RON">RON</option>
                            <option value="USD">USD</option>
                            <option value="EUR">EUR</option>
                          </select>
                        </li>
                                                                                                                        <li>
                            <label>Units</label>
                            <input required  class="scurtI" type="text" name="prod_units" value="<?= $_GET['prod_units'] ?>" placeholder="">
                        </li>
                        <li>
                            <label>Category</label>
                            <select name="prod_ctgy" class="focusSelect">

                            <?php

                            $sql = "SELECT * FROM `categorii` WHERE `cat_id`";
                            $connect = mysqli_query($db_connect, $sql);
                            while (($item = mysqli_fetch_array($connect)))
                                {
                                    ?>
                                     <option
                                    value="<?= $item['cat_id'] ?>"><?= str_repeat('&nbsp;', 6 * $item['section_level']) ?><?= $item['section_name'] ?></option>
                                <?php

                            }

                            ?>


                          </select>
                        </li>
                        <li>
                            <label>Manufacturer</label>
                            <select name="prod_manu" class="focusSelect">

                            <?php

                            $sql = "SELECT * FROM `manufactures` WHERE `id`";
                            $connect = mysqli_query($db_connect, $sql);
                            while (($item = mysqli_fetch_array($connect)))
                                {
                                    ?>
                                     <option
                                    value="<?= $item['manu_code'] ?>"><?= $item['manu_name'] ?></option>
                                <?php

                            }

                            ?>


                          </select>
                        </li>

                        <li>
                         <label>Atributes</label>
                         <select name="prod_atr_id" class="focusSelect">

                            <?php
                            if (isset($_GET['prod_atr_id'])){
                                echo "<option selected value=".$_GET['prod_atr_id'].">Selected</option>";
                            }

                            $sql = "SELECT * FROM `products_atributes` WHERE `prod_atr_id`";
                            $connect = mysqli_query($db_connect, $sql);
                            while (($item = mysqli_fetch_array($connect)))
                                {
                                    ?>
                                     <option
                                    value="<?= $item['prod_atr_id'] ?>"><?= $item['prod_atr_name'] ?></option>
                                <?php

                            }

                            ?>
                          </select>
                           <button class="btn btn-sm btn-primary" type="submit" name="next_add_product">Next</button> 
                        </li>
                                <?php 
            if(isset($_GET['prod_atr_id']))

    {
        list_atributes($_GET['prod_atr_id']);   

    ?> 

                            <li>
                                <label>Main Image </label>
                                <input type="file" name="prod_image" style="">
                            </li>
                            <li>
                                <input class="btn btn-sm btn-primary" type="submit" name="prod_add_new" value="Add Product">
    </li>                           
                        </form>

    <?php           
    }
        if(isset($_GET['prod_add_new']))

    {   
    //$prod_name = $_GET['prod_name']


    foreach($_GET as $key => $value){
      echo $key . " : " . $value . "<br />\r\n";

    }





    //print_r($all_gets);

    }
    ?>   



    function list_atributes($id)
{
    global $db_connect;
    $atribute_detect = $id;
            if ($atribute_detect > 0){

                $sql = "SELECT * FROM `products_atributes` WHERE `prod_atr_parent` = '".$atribute_detect."'";
                $connect = mysqli_query($db_connect, $sql);
                $count = mysqli_num_rows($connect);
                if ($count == 0)
                    {
                        $sql = "SELECT * FROM `products_atributes` WHERE `prod_atr_id` = '".$atribute_detect."'";
                    }
                if ($count > 0)
                    {
                        $sql = "SELECT * FROM `products_atributes` WHERE `prod_atr_parent` = '".$atribute_detect."'";
                    }

                $connect = mysqli_query($db_connect, $sql); 
                while (($item = mysqli_fetch_array($connect)))
                {
                    echo "
                        <li>
                            <label>".$item['prod_atr_name']."</label>
                            <input required  class='scurtI' type='text' name='".$item['prod_atr_code']."' value='".$_GET[$item['prod_atr_code']]."' >
                        </li>
                    ";

                }


            }



}

现在我得到了这个结果

我怎样才能得到这些值,对于所有前缀为 prod_ 我有特殊的列,对于那些有数字的我必须把它们全部放在一个列中,然后我必须使用它们作为 id 提取=40320861 值=2000mb,等等。我如何构建代码以在单个列中添加数据库随机数的 $_GET 值

我对问题的理解是你需要保存以下GET变量:

26126933 : 1243ghz
40320861 : 2000mb
47789694 : 64 位

在随机生成密钥的单个数据库列中(未知)。

答案:
将属性保存在多维数组中,为此将 html 中的名称值设置为类似 prod_attr_value[][$RANDOM_NUMBER] 的值,这将使数组中的属性值 $_GET['prod_attr_value'] 。

然后将这些值保存在单个数据库列中,您可以简单地 json_encode($arr).

hth

更新:

<input required  class='scurtI' type='text' name='".$item['prod_atr_code']."' value='".$_GET[$item['prod_atr_code']]."' >

以上创建了一个 $_GET 变量,其键的名称(而非值)为 $item['prod_atr_code'].

的值

将名称更改为类似 prod_attr_values_arr[][$item['prod_atr_code']] 的名称,将在发送请求时创建数组 $GET['prod_attr_values_arr']