在php中如何在数据库中插入复选框和文件字段值
我在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
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);
}
?>