-3

1 つのボタンをクリックしてデータベース テーブルに複数のデータを追加したいのですが、どうすればよいですか?

<?php

 if( isset($_POST['add']) ){

        $ins = "INSERT INTO informations(`cate_id` ,`location_id` , `name` ,`specialization` , `address` , `telephone` , `time`) VALUES(
    '".$_POST['category']."', 
        '".$_POST['location']."', 
    '".$_POST['name']."', 
    '".$_POST['specialization']."',
    '".$_POST['address']."', 
    '".$_POST['telephone']."', 
    '".$_POST['time']."')";
    $do_ins = mysql_query($ins); 

    echo 'Insert done';

     }

    ?>
4

1 に答える 1

2

これは、mysql の複数行挿入構文の基本バージョンです。

INSERT INTO mytable (field1, field2, field3)
VALUES 
(value1, value2, value3),
(value4, value5, value6)

上記のクエリでは、次の 2 つの行が挿入されます (value1, value2, value3)(value4, value5, value6)

- 編集 -

フォームでは、フォームの入力名に配列のような構文を使用して、変数を配列で PHP に渡すことができます。場所を使用している場合は、次のようなことができます。

<input type="text" name="locations[0][name]" />
<input type="text" name="locations[0][address]" />

<input type="text" name="locations[1][name]" />
<input type="text" name="locations[1][address]" />

上記の入力により、次のエントリが埋められ$_POSTます。$_GET

$_POST['locations'][0]['name']
$_POST['locations'][0]['address']

$_POST['locations'][1]['name']
$_POST['locations'][1]['address']

ご覧のとおり、これにより、ループを使用して各場所を通過できます。

$locations = array();
foreach($_POST['locations'] as $location) {
    $fields = array_map('mysql_real_escape_string', $location);

    $locations[] = "(\"{$fields['name']}\", \"{$fields['address']}\")"; 
}

$insert = "INSERT INTO locations (name, address) VALUES " . implode(',', $locations);
mysql_query($insert);

ほとんどの場合、検証コードを追加して、実際にすべてのフィールドにも入力されていることを確認する必要があります。

于 2013-05-18T00:08:55.007 に答える