PHP在SQL中插入未知行数


PHP insert Unknown number of rows in SQL

我正在做一个脚本,它可以写名字和年龄的人在一个列表中注册他们。

  <p>
    1.
    <input name="first_name" type="text" id="first_name" >
    <input name="last_name" type="text" id="last_name" >
    <input name="age" type="text" id="age" >
  </p>
  <p>
    2.
    <input name="first_name" type="text" id="first_name" >
    <input name="last_name" type="text" id="last_name" >
    <input name="age" type="text" id="age" >
  </p>
  <p>
    3.
    <input name="first_name" type="text" id="first_name" >
    <input name="last_name" type="text" id="last_name" >
    <input name="age" type="text" id="age" >
  </p>
etc.

和我有一个jQuery脚本,追加额外的行,如果需要。

然后我想知道如何做,当我需要我的PHP脚本导入数据。管理单个字段很容易,但是由于有一个相同名称的列表,我必须使用某种foreach语句。我在PDO写作,所以更喜欢与PDO相关的答案,而不是mysql查询。

  <p>
    <!-- added with jQuery -->
    4.
    <input name="first_name" type="text" id="first_name" >
    <input name="last_name" type="text" id="last_name" >
    <input name="age" type="text" id="age" >
  </p>

您可以为所有相同类型的输入设置相同的名称(first_name[], last_name[], age[])所以您在发布表单数据时得到数组,然后在PHP中您可以使用foreach并插入新行

您将无法像PHP那样读取它们,除非您在名称末尾使用[]表示它是一个数组。

如果你这样做,像这样的东西应该工作:

foreach( $_POST['first_name'] AS $num=>$first_name ){
    $last_name = $_POST['last_name'][$num];
    $age = $_POST['age'][$num];
    // Do your insert here.
}

你应该像这样构建html -

<input name="first_name[]" type="text" id="first_name" >
<input name="last_name[]" type="text" id="last_name" >
<input name="age[]" type="text" id="age" >

你可以访问你的值-

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$age = $_POST['age'];