Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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_once('connection.php'); $prod_imgs=''; if(isset($_REQUEST['submit'])) { $category_id=$_REQUEST['category']; $product_id=$_REQUEST['product']; $relation_id=$_REQUEST['relation']; $occasion_id=$_REQUEST['occasion

我在php文件中有以下代码:

include_once('connection.php');
$prod_imgs='';
if(isset($_REQUEST['submit']))
{
    $category_id=$_REQUEST['category']; 
    $product_id=$_REQUEST['product'];
    $relation_id=$_REQUEST['relation'];
    $occasion_id=$_REQUEST['occasion'];
    $prod_image = $_FILES['prod_image']['name'];

    $tot=count($prod_image);
    $tott=count($occasion_id);
    //$tott=count($occasion);
    foreach($prod_image as $key=>$prod_imgs)
    {
        if($prod_imgs==="")
        {
            unset($prod_image[$key]);
            $prod_image[] = $prod_imgs;
            echo $key.$prod_imgs;
        }

    }

        for($i=0;$i<$tott;$i++)
        {

        if($prod_image!='')
        {
             $prod_images=$prod_image[$i];
            $occasion=$occasion_id[$i];

            //$image=$prod_images[$i];  
            //echo $prod_images=$prod_image[$i];

        if(mysql_query("insert into tbl_add_product_occasion                            values('','$category_id','$product_id','$relation_id','$occasion','product_images/$prod_images')")or die(mysql_error()))
    {
        $msg="<script>alert('your product info added successfully')</script>";
    }
    else
    {
        echo "<script>alert('an error occured!!!')</script>";
    }

    }
    }
echo $msg;
}

& the html is:





<script type="text/javascript">
function get_product(cat){      
                                  // alert(cat);
                                   $.ajax({
                                      type : "POST",
                                      url : 'ajax_get_product.php',
                                      data : 'cat=' +cat,
                                      success : function(data){
                                        //alert(data);
                                        document.getElementById('prod').innerHTML=data;
                                            //society_code').innerH''TML=data.d;
                                         }
                                      });

        };


</script>
<form action="" method="post"  enctype="multipart/form-data">

                <fieldset>
                 <dl>
                        <dt><label for="gender">Select category:</label></dt>
                        <dd>
                            <select  name="category" id="category" onchange="get_product(this.value)" >
                                <option>select category</option>
                                <?php
                                $sel=mysql_query("select * from tbl_category");
                                while($arr=mysql_fetch_array($sel))
                                {
                                    $id=$arr['id'];
                                    echo "<option value='".$id."'>".$arr['category']."</option>";
                                }
                                ?>
                            </select>
                        </dd>
                    </dl>
                    <dl>
                    <dt><label for="product">Select Product:</label></dt>
                        <dd>
                            <select name="product" id="prod">
                                <option value=''>select product</option>

                            </select>
                        </dd>
                    </dl>

                    <dl>
                    <dt><label for="option">choose relation:</label></dt>
                    <dd>
                    <select name="relation">
                    <?php
                    $query=mysql_query("select * from tbl_relation");
                    while($result=mysql_fetch_array($query))
                    {
                        $relation=$result['relation'];
                        $relation_id=$result['id'];
                        echo "<option value='".$relation_id."'>".$relation."</option>";         

                    }?>
                    s</select>
                    </dd>
                    </dl>
                    <dl>
                    <dt><label for="option">choose Occasion:</label></dt>
                    <div style="float:left;width: 400px;margin-top: 9px;">
                    <?php
                        $select=mysql_query('select * from tbl_occasion');
                        while($array=mysql_fetch_array($select))
                        {
                            $occasion_id=$array['id'];
?>


<dd style="width:auto;">
<span id="" style="width:115px; float:left;"><input type="checkbox" name="occasion[]" value="<?php echo $occasion_id;?>" /><?php echo $array['occasion'];?></span>
<input type="file" name="prod_image[]"/>

</dd>

<?php
}
?>
                    </div>
                    </dl>
                    <dl class="submit">
                    <input type="submit" name="submit" id="submit" value="Enter" />
                     </dl>
                </fieldset>

             </form>
当我将数据插入到我的表中时,不插入数据库中,其他的工作正常,但不插入图像。请帮我解决这个问题。
提前感谢。

您应该放弃使用不推荐使用的mysql_*函数。改用mysqli或PDO。不要连接字符串,而是使用带参数的准备语句。将输入值绑定到参数。也就是说:

PHP手册上说:

默认情况下,文件将存储在服务器的默认临时目录中,除非php.ini中的upload_tmp_dir指令提供了另一个位置

[……]

无论逻辑如何,您都应该从临时目录中删除该文件或将其移动到其他位置

在使用上载的文件之前,应使用移动该文件

在表单标记enctype=多部分/表单数据中添加此代码


您的图像列数据类型??您好,VMai先生,我在这里尝试了使用move_uploaded_file功能,我没有使用它,因为我将通过ftp上传图像。这里我只想插入图像路径问题是它的计数循环中的所有图像,其中复选框计数仅为选中值,因此它的问题发生循环正在根据复选框运行,因此图像字段插入为空..欢迎使用so!你能扩大你的答案吗?此外,阅读帮助部分可能会有所帮助。请编辑您的答案并将您的解释放在那里。
<form action="" method="post" enctype="multipart/form-data">

checkbox value : <input type="checkbox" name="chk[]" value="play"> play
<input type="checkbox" name="chk[]" value="game" required>game

file name : <input type="file" name="img" required>

<input type="submit" name="submit" value="submit">

</form>
 

<?php

if(isset($_POST['submit']))

{
# $_FILES — HTTP File Upload variables
$img = $_FILES['img']['name'];

$checkbox = $_POST['chk'];
# implode() returns a string from the elements of an array.
$chk = implode(",",$checkbox);

$link = mysqli_connect("localhost","root","","db_name");

$q ="insert into table (image,checkbox) values ('$img','$chk')";
mysqli_query($link,$q);
}
?>