У меня есть страница, на которой есть 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;
}
Вы можете создавать скрытые поля в каждой форме, названной, например, 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;
Использование:
foreach (array_keys($_POST) as $field)
{
echo $_POST[$field];
}
$field
содержит поля формы html.
INSERT INTO *get table name* SET *get field name* = $_POST["table name"]["field name"]
запрос