我有代码可以从数据库中创建/更新/删除我的数据。
我有数据和横幅图像。如果只设置了数据,我不想更新图像。
因此,我尝试制作一个代码验证器:如果我仅更新数据(而不是图像),则我的图像不会设置为空。
但是我的验证无法检测我是否已填写输入文件...
这是我的代码:
<?php
include ("config.php");
$id= $_POST['id'];
$konten3 = $_POST['konten3'];
$footer=$_POST['footer'];
$lokasi_file = $_FILES['banner']['tmp_name'];
$nama_file = $_FILES['banner']['name'];
if(isset($_FILES['banner'])) {
$hapus = mysql_query("SELECT * FROM newsletter WHERE id='$id'");
$r=mysql_fetch_array($hapus);
$d = 'upload/'.$r['banner'];
unlink ($d);
move_uploaded_file($lokasi_file,"upload/".$nama_file);
}if (empty($lokasi_file)) {
if ($edit = mysql_query("UPDATE newsletter SET konten3='$konten3', footer='$footer' WHERE id='$id'")){
header("Location: newsletter.php");
exit();
}
die ("Terdapat kesalahan : ". mysqli_error($konek));
}
if ($edit = mysql_query("UPDATE newsletter SET banner='$nama_file', konten3='$konten3',footer='$footer' WHERE id='$id'")){
header("Location: newsletter.php");
exit();
}
die ("Terdapat kesalahan : ". mysql_error($konek));
?>
如果有人能帮助我,我会很高兴。我正在尝试使用名称横幅更新图像
最佳答案
问题出在您的条件和上次查询中。我认为在上次更新中您不需要更新图像。更改您的代码如下
<?php
include ("config.php");
$id= $_POST['id'];
$konten3 = $_POST['konten3'];
$footer=$_POST['footer'];
$lokasi_file = $_FILES['banner']['tmp_name'];
$nama_file = $_FILES['banner']['name'];
if(isset($_FILES['banner']) && $_FILES['banner']['name'] != "") {
$hapus = mysql_query("SELECT * FROM newsletter WHERE id='$id'");
$r=mysql_fetch_array($hapus);
$d = 'upload/'.$r['banner'];
unlink ($d);
move_uploaded_file($lokasi_file,"upload/".$nama_file);
}
if (!empty($lokasi_file)) { //change here need to check "not empty" instead of "empty"
if ($edit = mysql_query("UPDATE newsletter SET banner='$nama_file',konten3='$konten3', footer='$footer' WHERE id='$id'")){
header("Location: newsletter.php");
exit();
}
die ("Terdapat kesalahan : ". mysqli_error($konek));
}
//Remove banner from below query
if ($edit = mysql_query("UPDATE newsletter SET , konten3='$konten3',footer='$footer' WHERE id='$id'")){
header("Location: newsletter.php");
exit();
}
die ("Terdapat kesalahan : ". mysql_error($konek));
?>
编辑
如果上传了横幅,请按如下方式更改逻辑,然后移动并更新横幅,否则仅更新其他数据
<?php
include ("config.php");
$id= $_POST['id'];
$konten3 = $_POST['konten3'];
$footer=$_POST['footer'];
$lokasi_file = $_FILES['banner']['tmp_name'];
$nama_file = $_FILES['banner']['name'];
if(isset($_FILES['banner']) && $_FILES['banner']['name'] != "") {
$hapus = mysql_query("SELECT * FROM newsletter WHERE id='$id'");
$r=mysql_fetch_array($hapus);
$d = 'upload/'.$r['banner'];
unlink ($d);
move_uploaded_file($lokasi_file,"upload/".$nama_file);
if ($edit = mysql_query("UPDATE newsletter SET banner='$nama_file',konten3='$konten3', footer='$footer' WHERE id='$id'")){
header("Location: newsletter.php");
exit();
}
die ("Terdapat kesalahan : ". mysqli_error($konek));
}
//Remove banner from below query
if ($edit = mysql_query("UPDATE newsletter SET , konten3='$konten3',footer='$footer' WHERE id='$id'")){
header("Location: newsletter.php");
exit();
}
die ("Terdapat kesalahan : ". mysql_error($konek));
?>
关于php - 验证图像未检测到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47469647/