ホームページ >データベース >mysql チュートリアル >チェックされていないチェックボックスを処理し、データ操作を防止しながら、複数のチェックボックスおよびテキストボックス配列から MySQL データベースにデータを効率的に挿入するにはどうすればよいですか?
このシナリオの主な目標は、複数のチェックボックスおよびテキストボックス配列から MySQL データベースにデータを効率的に挿入することです。まず、提示されたコードで発生する特定の課題に対処しましょう。
最初の問題は、チェックボックス データの表示に関するものです。元のコードはチェックされていないチェックボックスを示すことができず、その結果、すべてのチェックボックス オプションが選択されたものとして表示されます。これは、チェックボックスの値の誤った処理が原因です。
2 番目の問題は、データがデータベースに適切に挿入されていないことです。データベースへの接続は成功しましたが、データは書き込まれませんでした。これは、配列インデックスの誤った使用法と、MySQLi および mysql_query API の不適切な使用が原因で発生します。
これらの問題を解決するために、次のコードの変更を提案します。
<form method="POST"> <input type="hidden" name="item[]" value="cupcake"> <input type="text" name="items" value="cupcake" readonly><br> <b>Price :</b> <span name="price" value="3.00">.00</span><br> Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br> <input tabindex="1" name="checkbox[0]" type="checkbox" value="17" /><span>Add to Cart</span></label></div></div></td><br> <input type="hidden" name="item[]" value="cake"> <input type="text" name="items" value="cake" readonly><br> <b>Price :</b> <span name="price" value="20.00">.00</span><br> Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br> <input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /><span>Add to Cart</span></label></div></div></td><br> <input type="submit" name = "insertBT"><br> </form>
if(isset($_POST['insertBT'])) { $conn = new mysqli ($servername, $username, $password, $db); if($conn->connect_error) { die ("Connection Failed : " . $conn->connect_error); } else { $stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $name, $quantity, $price); foreach ($_POST['checkbox'] as $i => $price) { $name = $_POST['name'][$i]; $quantity = $_POST['quantity'][$i]; $stmt->execute(); } } }
これらの変更を実装することで、スクリプトはチェックボックス データを正しく処理できるようになりました。安全なデータ挿入を実行し、データベースから動的な価格値を取得し、正確な結果を提供します。潜在的なセキュリティ脆弱性を防ぐために、データベース操作を実行する前に、ユーザー入力が適切にサニタイズされていることを必ず確認してください。
以上がチェックされていないチェックボックスを処理し、データ操作を防止しながら、複数のチェックボックスおよびテキストボックス配列から MySQL データベースにデータを効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。