gpt4 book ai didi

php - 使用 PHP FORM 更新数据库上的图像

转载 作者:行者123 更新时间:2023-11-29 13:42:18 25 4
gpt4 key购买 nike

我正在创建一个内容管理系统,以便可以轻松更新数据库。我创建了一个更新页面,允许用户编辑数据库中的条目,他们可以上传新图像并编辑任何字段,没有任何问题。我遇到的问题是,如果您只想编辑“描述”字段中的文本,但不想更改图像,则提交表单时,它会用空白覆盖图像字段入口。我想要做的是,如果没有选择其他文件,则保留原始图像,但如果我上传新图像,它将被新图像替换。正如表格所示,更新数据库条目的唯一方法是每次更新内容时重新上传图像。当网站运行时,这并不实用,因为它需要从不同的设备进行更新,并且图像不会出现在每个设备上。如果这听起来像一个愚蠢的问题,我深表歉意,但我是 php 的新手,而且我已经坚持这个问题好几天了。我确信这可能很简单,但这是我用于上传的脚本:

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
/* upload image script */

$thumb=basename($_FILES['thumb']['name']);
if(move_uploaded_file($_FILES['thumb']['tmp_name'],"../shopImages/".$thumb))

$image1=basename($_FILES['image_1']['name']);
if(move_uploaded_file($_FILES['image_1']['tmp_name'],"../shopImages/".$image1))

$image2=basename($_FILES['image_2']['name']);
if(move_uploaded_file($_FILES['image_2']['tmp_name'],"../shopImages/".$image2))

/*end of script*/
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE tbl_products SET thumb=%s, image_1=%s, image_2=%s, title=%s, `desc`=%s, category_id=%s, status=%s, shipping_band=%s, price=%s WHERE product_id=%s",
GetSQLValueString($thumb, "text"),
GetSQLValueString($image1, "text"),
GetSQLValueString($image2, "text"),
GetSQLValueString($_POST['title'], "text"),
GetSQLValueString($_POST['desc'], "text"),
GetSQLValueString($_POST['category_id'], "int"),
GetSQLValueString($_POST['status'], "int"),
GetSQLValueString($_POST['shipping_band'], "text"),
GetSQLValueString($_POST['price'], "double"),
GetSQLValueString($_POST['product_id'], "int"));

这是我的表单代码:

    <form method="post" name="form1" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Product ID:</td>
<td>

<?php echo $row_RS_updateProducts['product_id']?>

</td>
<tr>
<tr valign="baseline">
<td nowrap align="right">Thumb:</td>
<td><?php echo $row_RS_updateProducts['thumb']?><input type="file" name="thumb" value="<?php echo $row_RS_updateProducts['thumb']?>" size="32"></td>

</tr>
<tr valign="baseline">
<td nowrap align="right">Image 1:</td>
<td><?php echo $row_RS_updateProducts['image_1']?><input type="file" name="image_1" value="<?php echo $row_RS_updateProducts['image_1']?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Image 2:</td>
<td><?php echo $row_RS_updateProducts['image_2']?><input type="file" name="image_2" value="<?php echo $row_RS_updateProducts['image_2']?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Title:</td>
<td><input type="text" name="title" value="<?php echo htmlentities($row_RS_updateProducts['title'], ENT_COMPAT, 'UTF-8'); ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Description:</td>
<td><input type="text" name="desc" value="<?php echo htmlentities($row_RS_updateProducts['desc'], ENT_COMPAT, 'UTF-8'); ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Category:</td>
<td><select name="category_id">
<?php
do {
?>
<option value="<?php echo $row_RS_Category['category_id']?>" <?php if (!(strcmp($row_RS_Category['category_id'], htmlentities($row_RS_updateProducts['category_id'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>><?php echo $row_RS_Category['category_name']?></option>
<?php
} while ($row_RS_Category = mysql_fetch_assoc($RS_Category));
?>
</select></td>
<tr>
<tr valign="baseline">
<td nowrap align="right">Status:</td>
<td><select name="status">
<option value="1" <?php if (!(strcmp(1, htmlentities($row_RS_updateProducts['status'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>Available</option>
<option value="2" <?php if (!(strcmp(2, htmlentities($row_RS_updateProducts['status'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>Pending</option>
<option value="3" <?php if (!(strcmp(3, htmlentities($row_RS_updateProducts['status'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>Unavailable</option>
</select></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Shipping Band:</td>
<td><select name="shipping_band">
<option value="a" <?php if (!(strcmp("a", htmlentities($row_RS_updateProducts['shipping_band'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>A</option>
<option value="b" <?php if (!(strcmp("b", htmlentities($row_RS_updateProducts['shipping_band'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>B</option>
<option value="c" <?php if (!(strcmp("c", htmlentities($row_RS_updateProducts['shipping_band'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>C</option>
<option value="d" <?php if (!(strcmp("d", htmlentities($row_RS_updateProducts['shipping_band'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>D</option>
</select></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Price:</td>
<td><input type="text" name="price" value="<?php echo htmlentities($row_RS_updateProducts['price'], ENT_COMPAT, 'UTF-8'); ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td><input type="submit" value="Update record"></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="product_id" value="<?php echo $row_RS_updateProducts['product_id']; ?>">
</form>

最佳答案

 //get the result for the product which has to update
$result=getResult($_POST['product_id']);//say getResult is the function that hold the result for this product.
//then set the same name as in database when no images has been uploaded
$thumb=basename($_FILES['thumb']['name'])?basename($_FILES['thumb']['name']):$result->thumb;
then Update with your query.

关于php - 使用 PHP FORM 更新数据库上的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17919629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com