插入多个相同的输入字段的PHP

时间:2018-07-24 08:46:59

标签: php mysqli multiple-insert

美好的一天。

<input type="text" name="title">
<input type="text" name="name[]">
<input type="text" name="name[]">

<?php
if(isset($_POST['submit']){
    $title = $_POST['title'];
    $name = $_POST['name'];

    $add = "INSERT INTO books (title, name) VALUES ('$title','$name')";
}
?>

此代码如何工作?应该同时插入相同的标题和不同的名称。谢谢。

Sample Form

我希望记录更新如下:

---------------------------------

|--bookID--|--Title--|--Author--|

|----1-----|---one---|----me----|

|----2-----|---two---|---you----|

---------------------------------

4 个答案:

答案 0 :(得分:1)

$_POST['name']是具有键01的数组。 因此,在您的示例中,您有:

 //This is just an example
 foreach($_POST['name'] as $name) {

 }

希望这会有所帮助。

答案 1 :(得分:0)

请检查以下代码

if(is_array($_POST['name']) && !empty($_POST['name'])) {
    foreach($_POST['name'] as $name) {
        $add = "INSERT INTO books (title, name) VALUES ('$title','$name')";
    //execute query here. mysqli_query($add) or PDO::query
    }
}

答案 2 :(得分:0)

Atul Vekariya示例是正确的,但您还需要在循环中执行查询。这就是为什么此示例不适合您的原因。

if(is_array($_POST['name']) && !empty($_POST['name'])) {
    foreach($_POST['name'] as $name) {
        $add = "INSERT INTO books (title, name) VALUES ('$title','$name')";

        //execute query here. mysqli_query($add) or PDO::query
    }
}

答案 3 :(得分:0)

搜索不同的解决方案之后。这是可行的。谢谢您的帮助。

<?php
include_once 'config/connect.php';

if($_SERVER["REQUEST_METHOD"] == "POST"){
    $title = $_POST['title'];
    $name = $_POST['name'];
    $length = count($name);
    $addBook = "INSERT INTO books (title,name) VALUES ";
    for($i=0; $i<$length; $i++){
        $addBook .= "('$title','$name[$i]'),";
    }
    $addBook = rtrim($addBook, ',');

    if($conn->query($addBook) === TRUE) {
        echo "Success";
    } else {
        echo "Error: ".$addBook."<br>".$conn->error;
    }

}
?>

<form action="addBook.php" method="POST">
    Title: <input type="text" name="title">
    <br/>
    Authors: <input type="text" name="name[]"> <input type="text" name="name[]"> 
    <br/>
    <input type="submit" name="submit">
</form>
相关问题