当其他图像被更新时,我尝试了很多不同的方法来保留这些图像。一切都很好,只是当我上传或更新其中一个图像时,其他图像被删除或空保存到数据库中。
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
session_start();
include ("connection.php");
include ("functions.php");
$user_data = check_login($con);
if(count($_POST)>0) {
if(!empty($_FILES['garden_photo1']['name'] . $_FILES['garden_photo2']['name']) && isset($_FILES["garden_photo1"]["name"], $_FILES['garden_photo2']['name'] )){
$id = $_POST['id'];
$cultivar_name = $_POST['cultivar_name'];
$breeder = $_POST['breeder'];
$lineage1 = $_POST['lineage1'];
$garden_photo1 = $_FILES['garden_photo1']['name'];
$ImageName = $_FILES['garden_photo1']['name'];
$ImageName2 = $_FILES['garden_photo2']['name'];
$target = "/cultivar/images/" . $ImageName;
$target2 = "/cultivar/images/" . $ImageName2;
move_uploaded_file($_FILES['garden_photo1']['tmp_name'], $target);
move_uploaded_file($_FILES['garden_photo2']['tmp_name'], $target2);
$stmt = $con->prepare("UPDATE cultivar_db set cultivar_name = ?, breeder = ?, lineage1 = ?, garden_photo1 = ?, garden_photo2 = ? WHERE id= ? ");
$stmt->bind_param( "sssssi", $cultivar_name, $breeder, $lineage1, $garden_photo1, $garden_photo2, $id);
$stmt->execute();
}else {
$id = $_POST['id'];
$cultivar_name = $_POST['cultivar_name'];
$breeder = $_POST['breeder'];
$lineage1 = $_POST['lineage1'];
$stmt = $con->prepare("UPDATE cultivar_db set cultivar_name = ?, breeder = ?, lineage1 = ? WHERE id= ? ");
$stmt->bind_param( "sssi", $cultivar_name, $breeder, $lineage1, $id);
$stmt->execute();
}
$message = "Cultivar Record Modified Successfully!";
}
$id = $_GET['id'];
$sql = "SELECT * FROM cultivar_db WHERE id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
$row = mysqli_fetch_array($result);
?><html>
<head>
<title>Update Cultivar Data</title>
<style>
.success{color: green; font-size:20px; fonte-weight:bold;}
</style>
</head>
<body>
<form name="cultivar_db" method="post" enctype="multipart/form-data">
<div style="padding-bottom:5px;">
<p><a href="cultivar-database.php">Go Back to Cultivar Database </a> > Edit <?php echo $row["cultivar_name"];?> Page</p>
</div>
<br>
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" >
<br>
Cultivar Name: <br>
<input name="cultivar_name" value="<?php echo $row['cultivar_name']; ?>">
<br>
Breeder: <br>
<input type="text" name="breeder" value="<?php echo $row['breeder']; ?>">
<br>
Lineage 1 :<br>
<input type="text" name="lineage1" value="<?php echo $row['lineage1']; ?>">
<br>
Garden Photo 1: <img id="output" src="../cultivar/images/<?php echo $row["garden_photo1"];?>" style="height:auto; width:70px;">
<br>
<br>
<input id="garden_photo1" type="file" name="garden_photo1" >
<br>
Garden Photo 1: <img id="output" src="../cultivar/images/<?php echo $row["garden_photo2"];?>" style="height:auto; width:70px;">
<br>
<br>
<input id="garden_photo1" type="file" name="garden_photo2" >
<br>
<br>
<input id="submit" type="submit" name="submit" value="Submit" >
<br>
<br>
<div class="success">
<?php if(isset($message)) { echo $message; } ?>
</div>
</form>
</body>
</html>发布于 2022-08-01 08:10:24
现在,你似乎只是在区分这两种情况,根本没有上传任何图像,或者上传了两张图片。您需要处理的情况是,其中一个图片是上传的,而另一个没有,以及。
但是,与其为所有四种可能的组合编写不同的分支(没有上载图像;图像1被上传但图像2没有上载;图像1没有上载但图像2已经上载;或者两者都被上载),如果您单独处理每个图像上传,则会更有意义:
图片1上传了吗?然后处理上传,并更新数据库中的图像1的列。
图片2上传了吗?然后处理上传,并更新数据库中的图像2的列。
https://stackoverflow.com/questions/73189155
复制相似问题