php POST форма запроса динамической переменной

У меня такая форма

<form method="post" action="process.php"> Name: <input type="text" name="name" value=""> <br /> English: <input type="text" name="english" value=""> <br /> French: <input type="text" name="french" value=""> <br /> <input type="submit" name="submit" value="Submit"> </form> 

и мы делаем этот запрос на process.php

 $query = " UPDATE `translations_structure` SET `updated_on` = '".time()."', `english` = '".utf8_encode($english)."', `french` = '".utf8_encode($french)."' WHERE `id` = '".$id."'"; 

и если я отредактирую языки таблиц и добавлю больше языков, то форма динамически изменится, чтобы сказать этот пример

 <form method="post" action="process.php"> Name: <input type="text" name="name" value=""> <br /> English: <input type="text" name="english" value=""> <br /> French: <input type="text" name="french" value=""> <br /> Spanish: <input type="text" name="spanish" value=""> <br /> German: <input type="text" name="german" value=""> <br /> <input type="submit" name="submit" value="Submit"> </form> 

и запрос, который мне нужно динамически редактировать

 $query = " UPDATE `translations_structure` SET `updated_on` = '".time()."', `english` = '".utf8_encode($english)."', `french` = '".utf8_encode($french)."', `spanish` = '".utf8_encode($spanish)."', `german` = '".utf8_encode($german)."' WHERE `id` = '".$id."'"; 

что я не понимаю, так это то, как я динамически делаю внутри запроса код

* имя поля формы совпадает с именем переменной i POST
* и имя столбца из таблицы совпадает с именем POST

  `english` = '".utf8_encode($english)."', `french` = '".utf8_encode($french)."', `spanish` = '".utf8_encode($spanish)."', `german` = '".utf8_encode($german)."', `other_language` = '".utf8_encode($other_language)."', `other_language2` = '".utf8_encode($other_language2)."' 

здесь выше я объяснил, как я делаю запрос, но я не могу понять, как писать переменные

Я знаю, немного сложно, что мне нужно, но, возможно, кто-то понимает, что мне нужно

Спасибо

Над этой строкой находится отредактированное сообщение, потому что кто-то отметил это сообщение


Сначала я объясню, что я хочу сделать:

У меня есть таблица под названием «переводы», где я храню языки. например: английский, французский, испанский и т. д.
Я использую форму для обновления новых значений, проблема в том, что я хочу, чтобы динамическая динамика не вставляла этот запрос в каждый файл php вручную, потому что таблица языков будет расти или редактировать, и я хочу динамически работать, чтобы не редактировать каждый php-файл.
имя переменных одинаково, как имя поля в базе данных, мне удается создать массив для имен в табличных переводах

это то, что у меня есть до сих пор, чтобы сделать его динамичным. Проблема в том, что я не знаю, как вставлять переменные в запрос $ _POST ['english'], $ _POST ['french'] и т. д.

 $db = new DB(); $query = $db->query("SELECT * FROM `translations_languages` ORDER BY `name` ASC"); while($row = $query->fetch_assoc()){ $values[] = "`{$row['name']}` = '{$row['name']}'"; } $dynamic_result = "".strtolower(implode(",", $values)).""; $query = " UPDATE `translations_structure` SET `updated_on` = '".time()."', $dynamic_result WHERE `id` = '".$id."' "; echo "$query"; 

и так выглядит запрос нормальным образом

 $query = " UPDATE `translations_structure` SET `updated_on` = '".time()."', `english` = '".utf8_encode($english)."', `french` = '".utf8_encode($french)."', `spanish` = '".utf8_encode($spanish)."' WHERE `id` = '".$id."'"; 

Я хочу добавить к запросу эти значения

 `english` = '".utf8_encode($english)."', `french` = '".utf8_encode($french)."', `spanish` = '".utf8_encode($spanish)."' 

вам просто нужно создать динамический массив обновлений. Что-то вроде этого:

 $languagesToUpdate = array(); // this is an example, you should modify as your script: // create a variable/constant to make sure you update only allowed fields $allowedLanguages = array('english' => true, 'french' => true, 'spanish' => true, 'german' => true, 'other_language' => true); // iterate threw post and check for allowed languages and add to languagesToUpdate the language we need to update with it's value foreach ($_POST as $post => $value) { if (isset($allowedLanguages[$post]) && $allowedLanguages[$post]) { $languagesToUpdate[] = '`' . $post . '` = "' . utf8_encode($value) . '"'; } } // add additional data like updated_on $languagesToUpdate[] = '`updated_on` = ' . time() . ''; //update database $db = 'UPDATE `translations_structure` SET '.implode(', ', $languagesToUpdate).' WHERE `id` = '.(int)$id; // this will produce something like this: // UPDATE `translations_structure` SET `english` = "English text", `spanish` = "Spanish text", `updated_on` = 1479720637 WHERE `id` = 1