我有一个页面,上面有4种不同的表格,都是通过邮件提交的(在不同时间提交),目的是将信息插入数据库。表格都有
name="table_name[field_name]"
我想为所有表单构建一个INSERT查询。像这样:
if (isset($_POST) {
$sql = "INSERT INTO *get table name* SET *get field name* = $_POST["table name"]["field name"],
etc;
}
答案 0 :(得分:1)
使用:
foreach (array_keys($_POST) as $field)
{
echo $_POST[$field];
}
$field
包含您的html表单字段。
答案 1 :(得分:1)
您可以在每个表单中创建隐藏字段,例如form1
和form2
等。
并像这样构建您的查询
您有两种形式,例如
<form method="post">
<input type="hidden" name="form1">
<input type="text" name="some_field">
<input type="text" name="other_field">
<input type="submit">
</form>
<form method="post">
<input type="hidden" name="form2">
<input type="text" name="field">
<input type="submit">
</form>
您可以使用此方法构建INSERT查询(您可以对其进行改进)
<?php
$tables = array('form1' => 'table_name','form2' => 'table_name2');
// Building INSERT QUERY
$sql = "INSERT INTO ";
// keep only wanted fields (change this) to 'field' => value
$data = $_POST;
$count = 0;
$i = 0;
foreach ($data as $key => $value) {
if(array_key_exists($key, $tables)){
$sql .= $tables[$key] . ' SET ';
unset($data[$key]);
$count = count($data);
} else {
if($count !== 0){
$i++;
$sql .= " $key = '$value' ";
$sql .= $i == $count ? " " : " AND ";
}
}
}
echo $sql;