我想知道为什么我的 foreach 循环会在我的 mysql 表中创建一个额外的行,并且只插入一个包含数据的列。我是 php 和 mysql 的新手,所以非常感谢任何帮助。下面是我表格中的代码
<form name="insert_test" action="inserttest.php" method="post">
<table>
<tr>
<td>Brand</td><td>terms</td><td>HW Stamp</td><td>Origin</td><td>Cases</td>
</tr>
<tr>
<td><input type="text" name="brand[]" /></td>
<td><input type="text" name="terms[]" /></td>
<td><input type="text" name="hwstamp[]" /></td>
<td><input type="text" name="origin[]" /></td>
<td><input type="text" name="cases[]" /></td>
</tr>
</table>
<table>
<tr>
<td>Brand</td><td>terms</td><td>HW Stamp</td><td>Origin</td><td>Cases</td>
</tr>
<tr>
<td><input type="text" name="brand[]" /></td>
<td><input type="text" name="terms[]" /></td>
<td><input type="text" name="hwstamp[]" /></td>
<td><input type="text" name="origin[]" /></td>
<td><input type="text" name="cases[]" /></td>
</tr>
</table>
<input type="hidden" name="report_id" value="<?php echo $report_id;?>" />
<input type="submit" value="Submit" />
这是我的php代码:
foreach ($_POST['brand'] as $key => $brand) {
$terms = addslashes($_POST['terms'][$key]);
$hwstamp = addslashes($_POST['hwstamp'][$key]);
$origin = addslashes($_POST['origin'][$key]);
$cases = addslashes($_POST['cases'][$key]);
$report_id = addslashes($_POST['report_id'][$key]);
$queryreg= "INSERT INTO lots VALUES('',' $brand', '$terms',' $hwstamp', '$origin', '$cases','$report_id')" or die(mysql_error());
mysql_query($queryreg);
}
echo mysql_error();
我表中的列是 (id,brand,terms,hwstamp,origin,cases,report_id) id 是主键,report_id 是外键。当我在两个表中输入数据时,它会正确插入并创建两行并在列中包含所有数据,当我只将数据输入到一个表中时,它会在表中创建包含所有数据的一行,然后创建第二行除 report_id 列外,所有列都为空。