ホームページ > データベース > mysql チュートリアル > 複数のチェックボックスおよびテキストボックス配列データを MySQL データベースに効率的に挿入するにはどうすればよいですか?

複数のチェックボックスおよびテキストボックス配列データを MySQL データベースに効率的に挿入するにはどうすればよいですか?

DDD
リリース: 2024-11-28 06:37:17
オリジナル
957 人が閲覧しました

How to Efficiently Insert Multiple Checkbox and Textbox Array Data into a MySQL Database?

MySQL データベースへの複数のチェックボックスおよびテキストボックス配列の挿入

MySQL データベースへの複数のチェックボックスおよびテキストボックス配列の挿入は、難しい作業になる場合があります。これは、チェックボックスがオンになっている場合にのみ送信される場合に特に当てはまります。これを実現する方法の詳細な説明は次のとおりです:

HTML フォーム

各チェックボックスの name 属性に明示的なインデックスがあることを確認します:

<input tabindex="1" name="checkbox[0]" type="checkbox" value="17" />
ログイン後にコピー

さらに、名前に同じインデックスを含めて、テキストボックス配列がチェックボックスに対応していることを確認してください。属性。

PHP スクリプト

1.チェックボックスの処理:

foreach を使用してチェックボックス配列を反復処理し、各値に対応するインデックスを付けます:

foreach($_POST['checkbox'] as $i => $check) {
    $checkArray[$i] = $check;
}
ログイン後にコピー

2。配列の結合:

チェックボックス配列のインデックスは他の配列と一致しない可能性があるため、手動で結合する必要があります。別の foreach ループを使用してチェックボックス配列を反復処理し、その値を他の配列の対応する値と結合します:

foreach($checkArray as $i => $check) {
    $itemArray[$i] = $_POST['item'][$i];
    $quantityArray[$i] = $_POST['quantity'][$i];
}
ログイン後にコピー

3.データベースへの挿入:

配列を正しく結合したので、データベースへの挿入を実行できます。 SQL インジェクションを回避するには、bind_param でプリペアド ステートメントを使用します。

$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)");
$stmt->bind_param("sis", $product, $quantity, $price);

foreach ($itemArray as $i => $product) {
    $quantity = $quantityArray[$i];
    $price = $_POST['price'][$i]; // Get the price from the HTML
    $stmt->execute();
}
ログイン後にコピー

追加のヒント:

  • HTML での価格のハードコーディングを避けます。代わりに、フォーム処理中にデータベースからそれらを取得します。
  • コード全体で同じ API (MySQLi または PDO) を使用してデータベース接続が開かれていることを確認してください。
  • 準備されたものを実行するには、execute() を使用してください。従来の MySQL API の一部である mysql_query の代わりにステートメントを使用します。

以上が複数のチェックボックスおよびテキストボックス配列データを MySQL データベースに効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート