-3

我想通过单击一个按钮在数据库表中添加多个数据,我该怎么做?

<?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 回答