foreachループがmysqlテーブルに余分な行を作成し、データを含む列を1つだけ挿入するのはなぜだろうと思っていました。私は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が外部キーです。両方のテーブルにデータを入力すると、2つの行が作成され、列にすべてのデータが正しく挿入されます。1つのテーブルにのみデータを入力すると、すべてのデータを含む1つの行がテーブルに作成されますが、次のように2番目の行が作成されます。 report_id列を除くすべての列が空です。