0

我的场景是这样的:

<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'");`
}
}

希望这对你们来说很清楚。提前致谢。=)

4

2 回答 2

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().

于 2012-06-18T06:32:55.203 回答
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 注入。

于 2012-06-18T06:32:23.893 回答