gpt4 book ai didi

php - 如何使用PHP将多个数组插入数据库

转载 作者:行者123 更新时间:2023-11-29 05:46:02 24 4
gpt4 key购买 nike

我需要帮助。我们的 php 代码似乎有什么问题?我们似乎无法将我们的数据插入到我们的数据库中。我只是一个初学者,我的任务是将多个数据存储到多个数组中到我们的数据库中。我们实际做的是输入一个数字(例如:5),该页面中应显示 5 个表格。每份表格都包括姓名地址和电话号码。之后我们将其提交到我们的数据库。我们已经控制了很多表单来显示,但是我们无法存储插入的数据。任何人都可以帮助我们吗?谢谢。

表单.php

<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />

<?php
$i=0;

while ($i<$_POST['waw'])
{
?>
</form>

<form method="POST" action="input.php">
<!-- Person #1 -->

<input type="text" name="username[]" />

<input type="text" name="phonenum[]" />

<input type="text" name="add[]" />


<?php
$i++;
}
?>
<input type="submit" />
</form>

输入.php

<?php

$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");



$sql_start = 'INSERT INTO `mytable` VALUES ';
$sql_array = array();
$queue_num = $_POST['waw'];
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '(' . $username . ', ' . $phonenum . ', ' . $add . ')';
if (count($sql_array) >= $queue_num)
{
mysql_query($sql_start . implode(', ', $sql_array));
$sql_array = array();
}
}
if (count($sql_array) > 0)
{
mysql_query($sql_start . implode(', ', $sql_array))or die(mysql_error());
}


?>

最佳答案

我已经修改了您的代码以使其工作:

表单.php

<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
</form>

<form method="POST" action="input.php">
<?php
$i=0;

while ($i<$_GET['waw'])
{
?>

<!-- Person #1 -->

<input type="text" name="username[]" />

<input type="text" name="phonenum[]" />

<input type="text" name="add[]" /><br />


<?php
$i++;
}
?>
<input type="submit" />
</form>

输入.php

<?php


$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");



$sql_start = 'INSERT INTO `mytable` VALUES ';
$sql_array = array();
$queue_num = $_POST['waw'];
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '("' . $username . '", "'.$phonenum.'", "'.$add.'")';
if (count($sql_array) >= $queue_num) {
$query_single=$sql_start . implode(', ', $sql_array);
mysql_query($query_single);
$sql_array = array();
}
}

if (count($sql_array) > 0) {
$query = $sql_start . implode(', ', $sql_array);
mysql_query($query)or die(mysql_error());
}

?>

它工作正常。我刚刚在我的本地机器上对其进行了测试。

编辑(评论):

  1. 在 input.php 中使用变量 $queue_num 是没有意义的,因为这个变量只在 form.php 脚本中可用('wow' input placed in another form, which is submitted to file form.php, not input .php)。所以 if (count($sql_array) >= $queue_num) block 工作错误;

  2. 检查数据库连接的配置设置(正如我在评论中所写,您必须使用名称“localhost”定义常量或用引号将 localhost 一词括起来);

  3. 我修改了你的表单,因为它的结构有误;

  4. 我不明白在 form.php 中创建第一个表单的目的。

您可以修改此代码以使其更适合您的情况。但首先尝试使用这个。

注意。使用var_dump()函数在调试期间查看 $_POST 数组以了解哪些变量可用。

关于php - 如何使用PHP将多个数组插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1899418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com