正如 SleepyCod 所说,您的赌注是foreach,但需要扩展答案:
- 表单域是否等同于表格?
- 每个表格是否用于
UPDATE 或INSERT 到多个表格中?
我问的原因是因为这是我为我的网页所做的事情。我创建了一个动态表单结构,在该结构中查询有问题的表,检索架构并使用foreach + switch() 来确定要使用的字段。
但这不是你要问的。
所以,我给你:
// 假设一个表:一个表格,并且每个输入名称 = 列名称。
//将数组 $_POST 剥离为它的键和值。
foreach($_POST as $key => $val) {
$vals .= "'$val', ";
$keys .= "`$key`, ";
}
// 为了避免产生错误,去掉结尾的逗号和空格。
$keys_strip = substr($keys, 0, -2);
$vals_strip = substr($vals, 0, -2);
$sql = mysql_query("插入到 t1 ($keys_strip) 值 ($vals_strip)");
对于多个表,它变得有点棘手。我会选择在每个表单的开头使用快速标识,因此我们可以执行以下操作:
// 假设两个+ table:一个表格,对于每个输入,name='t1:column_name';假设表格在每个表格中定义为一个数组,以便于参考。
// 将数组 $_POST 剥离为 key 和 value,然后将 key 分成两个单独的字段。这仅适用于 t1:column-name 设置;可以放入 if 语句来处理剩余的信息。
foreach ($_POST as $key as val) {
// 这将导致 keys_t1 = key 和 vals_t1 = val。
if (preg_match('/^(\w.+):(\w.+)$/', $key, $t_key)) {
${"keys_".$t_key[1]} = "$t_key[2], ";
${"vals_".$t_key[1]} = "$var, ";
}
}
// 假设 $tables 数组,包含此插入的表。
foreach ($tables AS $table) {
$keys_strip = substr(${"keys_".$table}, 0, -2);
$vals_strip = substr(${"vals_".$table}, 0, -2);
$sql = mysql_query("插入表 ($keys_strip) 值 ($vals_strip)");
}
可能需要一些工具才能使其正常工作,但它应该能让你到达你需要去的地方。请注意,这只会INSERT 基于表单的信息。如果您需要任何东西......好吧......我强烈建议使用隐藏输入类型。