template smart plugin page name is_page example php mysql forms variables dynamic

php - smart - wordpress is page



php POST formulario consulta actualizaciĆ³n dinamic variable (1)

solo necesita crear una matriz de actualización dinámica. Algo como esto:

$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

tengo esta forma

<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>

y hacemos esta consulta en process.php

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

y si edito los lenguajes de tabla y agrego más idiomas, la forma se modificará dinámicamente para digamos este ejemplo

<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>

y la consulta que necesito para ser editada dinámicamente

$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."''";

Lo que no entiendo es cómo hago esto dinámicamente dentro de la consulta del código

* el nombre del campo de formulario es el mismo que el nombre de la variable i POST
* y el nombre de la columna de la tabla es el mismo que el del 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)."''

aquí arriba he explicado cómo hago la consulta, pero no puedo entender cómo escribir las variables

Sé que es un poco difícil lo que necesito, pero tal vez alguien entienda lo que necesito

gracias

Sobre esta línea está el mensaje editado porque alguien marcó este mensaje respondió




Primero explicaré lo que quiero hacer:

Tengo una tabla llamada "traducciones" donde almaceno los idiomas. ej .: inglés, francés, español, etc.
Utilizo un formulario para actualizar los nuevos valores, el problema es que quiero hacer dinámico para no insertar esta consulta en cada archivo php manualmente porque la tabla de idiomas crecerá o se editará y quiero trabajar dinámicamente para no editar cada archivo php.
el nombre de las variables es el mismo que el nombre de los campos en la base de datos que logro crear una matriz para los nombres en las traducciones de tablas

esto es lo que tengo hasta ahora para hacerlo dinámico, el problema es que no sé cómo insertar variables en la consulta $ _POST [''english''], $ _POST [''french''], etc.

$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";

y así es como la consulta parece normal

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

Quiero agregar a la consulta estos valores

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