私はこれを 2 日間調査しましたが、ほぼ機能しています... 問題は、動的に入力されたフォームで 2 つのチェックボックスをオンにすると、4 つのレコードが挿入されることです。それはもっと奇妙になります...レコードの1つはユニークです。3 つは同じ情報を持っています。私はここで完全に迷っています。
フォームのコードは次のとおりです。
<form name="form1" id="form1" method="post" action="insert_zip_codes.php?u=<?php echo $_SESSION['username'] ?>">
<table class="bordered" cellspacing="0">
<tr><th>City</th><th>State</th><th>ZIP Code</th></tr>
<?php while($row = mysql_fetch_array($rs)) { ?>
<tr><td><input name="zip_code[]" type="checkbox" id="zip_code" value="<?php echo $row[zip_code] ?>" /></td><td><?php echo $row[city] ?></td><td><?php echo $row[state] ?></td><td><?php echo $row[zip_code]?></td></tr>
<?php } ?>
</table><br />
<input type="submit" name="Submit" value="Submit" />
</form>
次のページの挿入ステートメントのコードを次に示します。
<?php $u = $_GET['u']; ?>
<?php var_dump($_REQUEST); ?> </br> </br>`
<?php foreach ($_POST['zip_code'] as $zip_code) {
$query = "INSERT INTO user_zip_save(username, zip_code) VALUES ('$u','".$zip_code."')";
mysql_query($query);
}
if(mysql_query($query))
{
echo 'success';
}
else
{
echo 'failure' .mysql_error();
}
echo $query; // print the sql to screen for de-bugging
$results = mysql_query($query); ?>
送信を押すと、次のように出力され、データベースに正常に挿入されます。
["zip_code"]=> array(2) { [0]=> string(5) "97477" [1]=> string(5) "97478" }
正しく見えますよね?しかし、データベースはこれらのレコードを取得します...
id 40 username *** zip_code 97478
id 41 username *** zip_code 97478
id 42 username *** zip_code 97478
id 43 username *** zip_code 97477
ご覧のとおり、ページでチェックされた最初の郵便番号を 1 回だけ (4 番目のレコードとして) 入力していますが、最初に 2 番目の郵便番号を 3 回入力しています。
理由はありますか?私は途方に暮れています。
前もって感謝します!!!:)