Как сказал SleepyCod, ваша ставка на грудь составляет foreach
, но ответ должен быть расширен:
- Поля формы эквивалентны таблице?
- Используется ли каждая форма для
UPDATE
или INSERT
в более чем таблице?
Причина, по которой я спрашиваю, заключается в том, что это то, что я сделал для моей веб-страницы. Я создал динамическую структуру формы, в которой запрашиваемая таблица запрашивается, схема извлекается, и foreach
+ switch()
используется для определения ЧТО должно использоваться поле.
Но это не то, что вы спрашиваете.
Итак, вместо этого я даю вам:
// Assuming one table:one form, and each input-name = column name.
//strip array $_POST into its key and value.
foreach($_POST as $key => $val) {
$vals .= "'$val', ";
$keys .= "`$key`, ";
}
// Lest we want to generate errors, shave off the trailing comma and whitespace.
$keys_strip = substr($keys, 0, -2);
$vals_strip = substr($vals, 0, -2);
$sql = mysql_query("INSERT INTO t1 ($keys_strip) VALUES ($vals_strip)");
Для нескольких таблиц это немного сложнее. Я бы предпочел использовать быструю идентификацию в начале каждой формы, чтобы мы могли сделать следующее:
// Assuming two+ table:one form, for each input, name='t1:column_name'; assume tables are defined in an array per form for easy reference.
//strip array $_POST into key and value, then separate the key into two separate fields. This will ONLY work for t1:column-name set up; an if statement can be put in to deal with the remaining information.
foreach ($_POST as $key as val) {
// This will result in keys_t1 = key and vals_t1 = val.
if (preg_match('/^(\w.+):(\w.+)$/', $key, $t_key)) {
${"keys_".$t_key[1]} = "$t_key[2], ";
${"vals_".$t_key[1]} = "$var, ";
}
}
// Assume $tables array, containing tables for THIS insert.
foreach ($tables AS $table) {
$keys_strip = substr(${"keys_".$table}, 0, -2);
$vals_strip = substr(${"vals_".$table}, 0, -2);
$sql = mysql_query("INSERT INTO table ($keys_strip) VALUES ($vals_strip)");
}
Может потребоваться некоторый инструментарий, чтобы заставить его работать правильно, но он должен привести вас туда, куда вам нужно. Помните о том, что это будет только INSERT
информация на основе форм. Если есть что-то, что вам нужно ... хорошо ... Я настоятельно рекомендую использовать скрытый тип ввода.