如何检索$ _POST字段名称

时间:2014-12-07 06:50:06

标签: php post

我有一个页面,上面有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;
    }

2 个答案:

答案 0 :(得分:1)

使用:

foreach (array_keys($_POST) as $field)
{
    echo $_POST[$field];
}

$field包含您的html表单字段。

答案 1 :(得分:1)

您可以在每个表单中创建隐藏字段,例如form1form2等。 并像这样构建您的查询

您有两种形式,例如

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