【问题标题】:Append a new field to an existing array将新字段附加到现有数组
【发布时间】:2019-02-15 22:05:47
【问题描述】:

我正在尝试为数组中的每个条目添加相同的团队名称。用户当前可以在单个表单提交中添加多个名称。如果用户添加了 3 个名字(first_name,last_name),数据会像这样插入到数据库中:

1. Adam, Smith
2. Jeff, Thomas
3. John, Reynolds

我希望用户能够提供“团队名称”,然后将团队名称插入到数组中的每个条目中,如下所示:

1. The Tigers, Adam, Smith
2. The Tigers, Jeff, Thomas
3. The Tigers, John, Reynolds

相同的团队名称被添加到数据库中的每一行。

<?php

//insert.php

$connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");

$query = "
INSERT INTO tbl_sample 
(first_name, last_name) 
VALUES (:first_name, :last_name)
";

for($count = 0; $count<count($_POST['hidden_first_name']); $count++)
{
 $data = array(
  ':first_name' => $_POST['hidden_first_name'][$count],
  ':last_name' => $_POST['hidden_last_name'][$count]
);
$statement = $connect->prepare($query);
$statement->execute($data);
}

?>

【问题讨论】:

  • 您需要在 SQL 表中为其创建一个特殊列并将其保存在那里。

标签: php mysql ajax


【解决方案1】:

您首先需要更改您的表格并添加一个新列来存储团队名称。我可以在您的问题中看到表名称为tbl_sample,因此下面是添加新列的查询:team_name

ALTER TABLE `tbl_sample` ADD `team_name` VARCHAR(255) NOT NULL AFTER `last_name`;

这是支持团队名称插入的更新后的 PHP 代码:

<?php

//insert.php

$connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");

$query = "
INSERT INTO tbl_sample 
(first_name, last_name, team_name) 
VALUES (:first_name, :last_name, :team_name)
";

for ($count = 0; $count < count($_POST['hidden_first_name']); $count++) {
    $data      = array(
        ':first_name' => $_POST['hidden_first_name'][$count],
        ':last_name' => $_POST['hidden_last_name'][$count],
        ':team_name' => $_POST['hidden_team_name'][$count] // assuming that you have team name also coming in the POST. You can change it to a static value though.
    );
    $statement = $connect->prepare($query);
    $statement->execute($data);
}
?>

【讨论】:

  • 谢谢!它工作得很好。我只需要删除最后一个 [$count]...
  • @JaredL 如果对您有帮助,请接受它作为答案:) 谢谢
猜你喜欢
  • 2018-09-02
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 2017-05-19
  • 2015-05-16
  • 2020-04-03
  • 2011-08-20
  • 1970-01-01
相关资源
最近更新 更多