如何使用php将表的多行值插入数据库

17 浏览
0 Comments

如何使用php将表的多行值插入数据库

该代码用于将多行值输入到数据库中,但问题是只有最后一行的值被输入到数据库中。如果有3行,则只有第三行的详细信息输入到数据库中。首先,表单有一个添加按钮和一个导入按钮。添加按钮用于添加行,然后必须点击导入按钮将这些行值输入到数据库中。

0
0 Comments

问题的出现原因:

在将表格的多行值插入数据库时,需要将输入的每个值都存储在数组中。例如,表格中的每个产品都应该是一个数组,如product[]。然后在PHP代码中,使用for/foreach循环遍历数组,并将每一行插入数据库。

解决方法:

1. 在HTML表单中,为每个输入框的name属性添加[],以创建一个数组。例如,如果有一个名为product的输入框,则应该将其name属性设置为product[]。

2. 在PHP代码中,使用for或foreach循环遍历每个数组,并将其值插入数据库。

3. 在循环中,使用SQL语句将每个值插入数据库表中。

以下是一个示例代码,演示如何将表格的多行值插入数据库:

<form method="post" action="insert.php">
    <table id="pTable">
        <tr>
            <th>Product</th>
            <th>Price</th>
        </tr>
        <tr>
            <td><input type="text" name="product[]"></td>
            <td><input type="text" name="price[]"></td>
        </tr>
        <tr>
            <td><input type="text" name="product[]"></td>
            <td><input type="text" name="price[]"></td>
        </tr>
    </table>
    <input type="submit" value="Submit">
</form>

<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
// 获取表单提交的数据
$products = $_POST['product'];
$prices = $_POST['price'];
// 遍历数组,并将每个值插入数据库
for($i = 0; $i < count($products); $i++) {
    $sql = "INSERT INTO products (product, price) VALUES ('" . $products[$i] . "', '" . $prices[$i] . "')";
    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "" . $conn->error;
    }
}
// 关闭数据库连接
$conn->close();
?>

通过以上方法,您可以轻松地将表格的多行值插入数据库,并确保每个值都能正确存储。

0
0 Comments

在使用PHP将表格的多行值插入数据库时,可能会出现以下问题:无法将表单提交到数据库。解决方法是阻止表单的提交,并通过读取表格 #pTable 中的数据创建一个 JSON 数据字符串。在表单中添加一个隐藏字段 ,将 JSON 字符串传递到服务器端。

在上述代码中,还进行了一些HTML和PHP的更改。HTML代码中,添加了一个保存按钮的点击事件,用于将新行添加到表格中。点击编辑按钮可以编辑行,点击删除按钮可以删除行。同时,表单中添加了一个用于存储 JSON 字符串的隐藏字段。

PHP代码中,使用 json_decode 将传递的 JSON 字符串解码为关联数组。然后,使用 foreach 循环遍历数组,将每个数组项的值添加到查询语句的 VALUES 子句中。在将值添加到查询语句中时,需要添加单引号来包裹每个值。最后,执行查询语句将数据插入到数据库中。

以上就是解决将表格的多行值插入数据库的问题的原因和解决方法。

0
0 Comments

当你提交表单时,它会通过POST方式发送输入值,而不是整个表格。由于输入框中仍然是最后添加行的值,它会通过POST方式发送这些值,然后将其插入到数据库中。

以下是解决方法:

1) 使用JavaScript的onclick方法拦截表单提交(你需要使用e.preventDefault来停止实际的提交)。

2) 使用jQuery读取所有的表格行,创建一个名为selectedPages的数组,它应该类似于以下结构:

selectedPages {

[

"category": "Foo",

"displayName": "FooBar",

"pageName": "Bar",

"privilage": 1

],[

"category": "Foo",

"displayName": "FooBar",

"pageName": "Bar",

"privilage": 1

],[

"category": "Foo",

"displayName": "FooBar",

"pageName": "Bar",

"privilage": 1

]

}

3) 创建一个新的php文件,在该文件的底部放置你当前拥有的php代码。

4) 发送一个AJAX的POST请求到新的php文件,并将selectedPages作为数据发送。

5) 在php文件中,遍历数组并将每个项插入到数据库中。

0