Как получить имена полей $ _POST

0

У меня есть страница, на которой есть 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
    Используйте скрытое поле в каждой отдельной форме, которая служит идентификатором, измените переменную $ tablename для SQL. По соображениям безопасности не делайте это прямо в строку. Используйте операторы switch для жесткого кодирования имени таблицы.
  • 1
    На самом деле @Zach Smith, что вы подразумеваете под этим INSERT INTO *get table name* SET *get field name* = $_POST["table name"]["field name"] запрос
Показать ещё 2 комментария
Теги:
post

2 ответа

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

Использование:

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

$field содержит поля формы html.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню