如何将数组中的值插入到自己的行中?
这是数组:
$nombre_bene = $_POST['nombre-bene'];
$cedula_bene = $_POST['ci-bene'];
$nacimiento_bene = $_POST['nacimiento-bene'];
$parentezco_bene = $_POST['parentezco-bene'];
$servicios_bene = $_POST['servicios-bene0'];
$id_titular = $_POST['plan-tipo'];
$data_beneficiario = array(
'nombre' => $nombre_bene,
'cedula' => $cedula_bene,
'nacimiento' => $nacimiento_bene,
'parentezco' => $parentezco_bene,
'id' => $id_titular,
'servicios' => $servicios_bene
);
事情是每个$ _POST都是作为一个数组出现的(因为我需要这样)
我试图在$ data_beneficiario数组中使用foreach ..但问题是每个变量都是一个索引数组..我正在使用PHP编写的函数中的函数
$statement2 = $connection->prepare(" INSERT INTO beneficiarios (nombre_bene, cedula_bene, fechan_bene, parentezco, id_titular_bene, servicios_adicionales) VALUES(?,?,?,?,?,?) ");
$statement2->bind_param("ssssis", $nombre_bene, $cedula_bene, $nacimiento_bene, $parentezco_bene, $id_titular, $servicios_bene);
但我不以哪种方式以每个值进入自己的列的方式插入值。我将不胜感激!
答案 0 :(得分:0)
首先将各个字段数组合成行。
$rows = array_map(
null,
$_POST['nombre-bene'],
$_POST['ci-bene'],
$_POST['nacimiento-bene'],
$_POST['parentezco-bene'],
$_POST['servicios-bene0'],
$_POST['plan-tipo']
);
接下来,插入每一行:
for ($rows as $row) {
$statement = $connection->prepare('insert into beneficiarios (nombre_bene, cedula_bene, fechan_bene, parentezco, id_titular_bene, servicios_adicionales) values (?,?,?,?,?,?)');
$statement->bind_param("ssssis", $row[0], $row[1], $row[2], $row[3], $row[4], $row[5]);
$statement->execute() or die $connection->error;
}
答案 1 :(得分:0)
假设每个数组具有相同数量的条目,您可以这样做。注意我使用array_values
来保证所有数组都具有相同的索引:
$nombre_bene = array_values($_POST['nombre-bene']);
$cedula_bene = array_values($_POST['ci-bene']);
$nacimiento_bene = array_values($_POST['nacimiento-bene']);
$parentezco_bene = array_values($_POST['parentezco-bene']);
$servicios_bene = array_values($_POST['servicios-bene0']);
$id_titular = array_values($_POST['plan-tipo']);
$statement2 = $connection->prepare(" INSERT INTO beneficiarios (nombre_bene, cedula_bene, fechan_bene, parentezco, id_titular_bene, servicios_adicionales) VALUES(?,?,?,?,?,?) ");
foreach (array_keys($nombre_bene) as $k) {
$statement2->bind_param("ssssis", $nombre_bene[$k], $cedula_bene[$k], $nacimiento_bene[$k], $parentezco_bene[$k], $id_titular[$k], $servicios_bene[$k]);
$statement2->execute();
}