ホームページ >データベース >mysql チュートリアル >PHP フォームから MySQL データベースにチェックボックスおよびテキストボックス配列データを適切に挿入するにはどうすればよいですか?
PHP フォーム処理: MySQL データベースへのチェックボックス配列とテキストボックス配列の挿入
PHP では、特に複数のチェックボックスとテキストボックス。フォーム データを効果的に管理するために、一般的な問題とその解決策を見てみましょう。
問題: チェックボックス値の不正な表示とデータベース挿入の失敗
チェックボックス配列を使用する場合、それらの値がユーザーの入力を正確に表していることを確認することが重要です。提供されたコードでは、実際の状態に関係なく、すべてのチェックボックスがチェックされた状態で表示されます。さらに、データは意図したとおりにデータベースに挿入されません。
解決策: 配列のインデックス作成とインデックス付きチェックボックス名
この問題は、implode の使用が原因で発生します。 、すべてのフォーム値をカンマ区切りのリストに結合します。これを回避するには、チェックボックス名に明示的なインデックスを使用します。こうすることで、配列インデックスは品目インデックスと数量インデックスに対応します。
次の HTML コードを考えてみましょう:
<input type="checkbox" name="checkbox[0]" value="17" />
これで、チェックボックス配列にはインデックス付きの要素が含まれ、適切なデータが可能になります。取得。
更新された PHPコード
PHP コードで、implode の使用をインデックス付き配列アクセスに置き換えます。さらに、データベースを安全に挿入するには、準備済みステートメントを使用します。改良版は次のとおりです。
$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(); }
この改訂されたコードは、インデックス付きチェックボックス名とプリペアド ステートメントを利用することで問題を解決し、チェックボックス データとテキストボックス データの両方を正確に処理できるようになります。 HTML 値に依存するのではなく、データベースから価格を取得して、データの整合性を確保することを忘れないでください。
以上がPHP フォームから MySQL データベースにチェックボックスおよびテキストボックス配列データを適切に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。