我有以下 html 提交表单。该表单是一个 PHP_SELF,并将输入数据作为数组存储在 $_POST 中。
<html>
<body>
<form method="post" action="<?php echo htmlentities($PHP_SELF); ?>">
<fieldset>
<legend>Direct Bill Information:</legend>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" /> </br>
DB #: <input type="int" name="db_num[]" /> DB Amount: <input type="int" name="db_amnt[]" />
</fieldset>
<input type="submit" value="submit" name="submit" />
</form>
</body>
</html>
我有一个包含“db_num”和“db_amnt”字段的 MySQL 表,我想将数组中的所有输入数据插入到表中。我环顾四周,“内爆”似乎是最好的方法,但经过大量研究,我仍然无法让它发挥作用。整个 PHP 执行并没有错误地完成,但是,它没有显示两列的所有 10 行,它只显示两列的 2 行,所有条目的值 = 0。这是我正在使用的代码:
$sql2 = array();
foreach($_POST as key=>$value)
{
if(key != 'submit')
{
if($value != '')
{
$sql2[] = '("'.mysql_real_escape_string($value['db_num']).'", "'.$value['db_amnt'].'")';
}
}
}
mysql_query('INSERT INTO ' .$tablename_db. '(db_num, db_amnt) VALUES '.implode(',', $sql2));
我做了一些调试,并在 foreach 循环中回显了 $value,结果它只显示了三个术语;“数组”、“数组”和“提交”。进一步的检查表明,我可以从提交表单中获取要显示的值的唯一方法是,如果我通过 $_POST[db_num] 和 $_POST[db_amnt] 而不仅仅是 $_POST 执行 foreach 循环。我不确定它为什么会这样做以及如何解决它。这是我在 PHP 中的第一个代码,我正在学习。我真的很感激我能得到的任何帮助!