我在 php 表单中有一个 5 个文件的输入类型。我想保存/更新我的数据库,而不是将数据库替换为空数据库,如果我的一个或多个文件输入类型留空。我使用排列计算了可能的 if 语句,它给了我 120 个 if 语句来完成所需的条件。
我尝试了 120 if 语句,它奏效了。
if($filename == '' && $filename1 != '' && $filename2 != '' && $filename3 != '' && $filename4 != ''){
$sql = "UPDATE units SET unit_name='$unit_name', barangay='$barangay', address='$address', owner_name='$owner_name',
rate='$rate', rooms='$rooms', contact_num='$contact_num', facilities='$facilities', maintenance='$maintenance',
rules_reg='$rules_reg', images='$image[0]/$filename1/$filename2/$filename3/$filename4' WHERE id='$unit_id'";
$save = mysqli_query($conn, $sql);
}else if($filename != '' && $filename1 == '' && $filename2 != '' && $filename3 != '' && $filename4 != ''){
$sql = "UPDATE units SET unit_name='$unit_name', barangay='$barangay', address='$address', owner_name='$owner_name',
rate='$rate', rooms='$rooms', contact_num='$contact_num', facilities='$facilities', maintenance='$maintenance',
rules_reg='$rules_reg', images='$filename/$image[1]/$filename2/$filename3/$filename4' WHERE id='$unit_id'";
$save = mysqli_query($conn, $sql);
}else if($filename != '' && $filename1 != '' && $filename2 == '' && $filename3 != '' && $filename4 != ''){
$sql = "UPDATE units SET unit_name='$unit_name', barangay='$barangay', address='$address', owner_name='$owner_name',
rate='$rate', rooms='$rooms', contact_num='$contact_num', facilities='$facilities', maintenance='$maintenance',
rules_reg='$rules_reg', images='$filename/$filename1/$image[2]/$filename3/$filename4' WHERE id='$unit_id'";
$save = mysqli_query($conn, $sql);
}
等等...
它成功更新了数据库,但我希望代码缩短更多
这行得通吗?
if($filename == '') $filename = $image[0];
if($filename1 == '') $filename1 = $image[1];
if($filename2 == '') $filename2 = $image[2];
if($filename3 == '') $filename3 = $image[3];
if($filename4 == '') $filename4 = $image[4];
$sql = "UPDATE units SET unit_name='$unit_name', barangay='$barangay',
address='$address', owner_name='$owner_name', rate='$rate',
rooms='$rooms', contact_num='$contact_num', facilities='$facilities',
maintenance='$maintenance', rules_reg='$rules_reg',
images='$filename/$filename1/$filename2/$filename3/$filename4' WHERE
id='$unit_id'";
$save = mysqli_query($conn, $sql);
如果你想让它更短一点....
for($x = 0; $x < 5; $x++)
{
eval("if($filename".(($x==0)?"":$x)." == '') $filename".(($x==0)?"":$x)." = $image".(($x==0)?"":$x)."[0];");
}
没有经过充分测试,但似乎有效..