我的情况是这样的:
<input type="file" name="image[]" />
<input type="file" name="image[]" />
<input type="file" name="image[]" />
<input type="file" name="image[]" />
我的数据库字段表是:
ID = 1
image1 = image1.jpg
image2 = image2.jpg
image3 = image3.jpg
image4 = image4.jpg
假设行id = 1已经预先插入了值,如果用户想要更新image1和image 4,那么他们将浏览并选择所需的图像文件,并将image2和image3留空。
这是执行mysql查询后的概念:
ID = 1
image1 = newimage1.jpg
image2 = image2.jpg
image3 = image3.jpg
image4 = newimage4.jpg
如何进行验证查询?
目前我的代码是这样的,我不知道如何从这里继续,因为我还是PHP / mysql的新手。
foreach ($_FILES['product_image']['name'] as $key => $value) {
if(!empty($value)) {
`$upt=mysql_query("update products_list set` `image1='$pic1',image2='$pic2',image3='$pic3',image4='$pic4' where id='$id'");`
}
}
希望你们清楚这一点。提前致谢。 =)
答案 0 :(得分:1)
您可以使用计数器更新正确的字段:
foreach ($_FILES['product_image']['name'] as $key => $value) {
if(!empty($value)) {
// field names starts from 1
$field = 'image'.($key+1);
mysql_query("UPDATE product_list ".
"SET $field = '$value' ".
"WHERE id = $id");
}
}
当然,这意味着您必须根据表单发送的内容最多更新同一条记录四次。此外,您应该使用mysql_escape_string()
。
答案 1 :(得分:0)
我认为你最好拥有product_images
表。这样,产品可以有1个或多个图像。您的表单可以保持不变,但您只需将products.id
与新图片表中的每条记录相关联。
添加新产品时,您将创建产品,然后为他们在表单中上传的每张图片插入图像记录。
编辑产品时,您可以轻松删除照片或添加新照片。
// remove an image
mysql_query("delete from product_images where product_id=$pid and id=$iid");
// add a new image
mysql_query("insert into product_images (product_id, image) values ($pid, '$filename')");
注意:不应直接使用这些查询。确保您采取适当的预防措施以防止SQL注入。