【问题标题】:PHP insert Unknown number of rows in SQLPHP在SQL中插入未知行数
【发布时间】:2012-12-13 16:43:37
【问题描述】:

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

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

【问题讨论】:

  • 每行的名称应该不同,因为当它序列化时,您只会得到一个第一个属性集

标签: php mysql sql foreach pdo


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    如果你这样做,这样的事情应该可以工作:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 老实说,我以前从未使用过数组。你能给我举个例子吗?
      • Suresh Kamrushi 的回答是 html 结构的好例子,scragar 是 PHP 脚本 :)
      • 在这里你可以阅读数组no.php.net/manual/en/language.types.array.php。这个html表单可以让php直接从全局变量中读取各种值
      猜你喜欢
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多