0

このような入力がある場合、これらの 2 つの入力は複数回繰り返されます。したがって、次のようになります。

    <input name="Gpodaciogolubu[]" type="text">
    <input name="Gpodaciogolubu_godina[]" type="number">

    <input name="Gpodaciogolubu[]" type="text">
    <input name="Gpodaciogolubu_godina[]" type="number">

    <input name="Gpodaciogolubu[]" type="text">
    <input name="Gpodaciogolubu_godina[]" type="number">
...

while または foreach ループを使用して両方の値を同時に取得し、次のように両方をデータベースに挿入することは可能ですか?

"INSERT INTO database (field1, filed2) VALUES ('$_POST["Gpodaciogolubu"]','$_POST["Gpodaciogolubu_godina"]')"

PHP/MySQL でコーディングしています

4

1 に答える 1

0

まず、挿入する行の配列を作成します。

$rows = []; // or array() in PHP 5.3 and older
$l = count($_POST['Gpodaciofolubu']);
for( $i=0; $i<$l; $i++) {
    $rows[] = "("
        ."'".mysql_real_escape_string($_POST['Gpodaciofolubu'][$i])."', "
        .intval($_POST['Gpodaciofolubu_godina'][$i]) // since you have `type="number"`
    .")";
}

次に、それらをバッチ挿入します。

mysql_query("insert into `database` (`field1`, `field2`) values ".implode(",",$rows));

mysqlもちろん、これは拡張機能を使用していることを前提としています。この仮定は、入力をサニタイズする試みがまったくないことに基づいています。

xkcd

于 2013-04-13T17:41:13.877 に答える