PHP在SQL中插入未知行数

时间:2012-12-28 11:52:45

标签: php mysql sql foreach pdo

我正在编写一个脚本,可以为人们写下姓名和年龄,以便在列表中注册。

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

如果你这样做,这样的事情应该有效:

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

答案 2 :(得分:2)

你应该像这样构建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'];