gpt4 book ai didi

php - 在更新表单 php 上显示图像路径

转载 作者:行者123 更新时间:2023-11-29 06:44:22 24 4
gpt4 key购买 nike

填充更新表单的字段时,我如何才能像这样显示当前图像的路径 enter image description here

这样,如果用户不想更改图像,则使用相同的图像。这是浏览器显示的内容: <input type="file" value="uploads/chaps_B.jpg" name="image_edit"></input>

我有一种感觉 photopath不在范围内,但不确定如何修复它。所有变量都填充了表单,它保存到数据库中很好,只是无法确定图像路径。

     if(isset($_POST['update_submit']))
{
$get_products = $db->prepare("select `photopath` from `item` where
`item_id` = '$get_item' LIMIT 1");
$get_products->execute();
$path= $get_products->fetchColumn(6);

if($_FILES['image_edit']['tmp_name'] != "")
{
$edit_name = $_POST['item_name'];
$edit_description =$_POST['item_description'];
$form_id = $_POST['edit_form_id'];

$file_dir = "uploads/";
$image = $file_dir. $_FILES['image_edit']['name'];
move_uploaded_file($_FILES['image_edit']['tmp_name'], $image);

$edit_sql =$db->prepare("UPDATE item SET item_name = '$edit_name',
item_description = '$edit_description',
photopath ='$image' WHERE item_id = '$form_id'");

$edit_sql->execute();
header("Location: manage_items.php");
exit();

}
else
{
$edit_name = $_POST['item_name'];
$edit_description =$_POST['item_description'];
$form_id = $_POST['edit_form_id'];

$edit_sql =$db->prepare("UPDATE item SET item_name = '$edit_name',
item_description = '$edit_description'
WHERE item_id = '$form_id'");

$edit_sql->execute();
header("Location: manage_items.php");
exit();
}

更新表格

      <form action="item_edit.php" method="post" enctype="multipart/form-data">

<input type = "text" name="item_name" value="<?php echo $item_name ?> "/>
<textarea name="item_description"><?php echo $item_description ?></textarea>

<p> <img src="<?php echo $image; ?>" width="75" height="75" /></p>
<input type="file" name="image_edit" />

<input name="edit_form_id" type="hidden" value="<?php echo $get_item ?>">
<p><input type="submit" name="update_submit" value="Update"/></p>
<p><input type="submit" name="cancel_edit" value="Cancel"/></p>
</form>

数据库结构

enter image description here

最佳答案

当检索单行时,您不必像您在代码的注释中所要求的那样循环遍历。

至于数据库,你到底在存储什么,你的表结构是什么样的?您可以轻松地将图像名称保存在一个字段中并检索它,甚至不会获得完整路径(因为那里可能有更多图像)

编辑 1

是的,这是解决空字符串插入问题的一种方法,但是查询必须不同,因此您必须编写一个插入图像的查询,以及一个排除它的查询

编辑 2

检索图像路径后,您现在要做的就是使用 PHP 的 explode 拆分字符串,例如$aPath = explode('/', $yourDBfield);,这会给你一个数组,其中的项目在/上分割,因为文件总是在最后,只需这样做:$image = $aPath[(count( $aPath)-1)];, 这应该给你图像。

编辑 3

根据 OP 的要求,

主要查询应该包括图像更新,例如当值集不为空时。

$edit_sql =$db->prepare("UPDATE item SET item_name = '$edit_name', 
item_description = '$edit_description',
photopath ='$image' WHERE item_id = '$form_id'");

其他查询应该排除 photopath = '$image' 例如

$edit_sql =$db->prepare("UPDATE item SET item_name = '$edit_name', 
item_description = '$edit_description',
WHERE item_id = '$form_id'");

如评论中所述,您还可以添加默认路径,例如$image(不拆分)为请求页面时字段的值,这样您只需编写 1 个查询,如果未更改,图像将保持不变。

关于php - 在更新表单 php 上显示图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19583639/

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