Есть ли ярлык для операторов 120 if для обновления базы данных с пустым типом ввода файлов в php? - PullRequest
0 голосов
/ 27 января 2019

У меня есть 5 типов ввода файла внутри формы в php.Я хочу сохранить / обновить мою базу данных, не заменяя ее пустой, если один или несколько из моих типов ввода файлов остались пустыми.Я вычислил возможные операторы 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);
  }

ии так далее ...

Он успешно обновляет базу данных, но я хочу, чтобы код сокращал больше

1 Ответ

0 голосов
/ 27 января 2019

Это работает?

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];");
}

Не полностью протестировано, но, похоже, работает ..

...