1

有问题。我得到了这样的表格

<input name="product[sub_name][]">
<input name="product[price][]">
<input name="product[random][]">
<input name="product[just_field][]">

我可以按“添加更多”添加许多这种形式的块。接收邮政数据我做的东西。

$field = $_POST['product'];

foreach ($field as $key => $values) {

    foreach($values as $value) {

        $key.' - '.$value;


    }

}

我需要代码根据发布的行在数据库中插入多行。问题是,我不知道如何只获得例如“价格”。目标是在数据库中插入所有数据。希望大家明白我的逻辑。

这是 print_r 输出。我可以得到比两种更多的可能性

Array ( 
    [sub_name] => Array ( [0] => New car [1] => New bike )
    [standart_price] => Array ( [0] => 100 [1] => 300 )
    [cupon_price] => Array ( [0] => 50 [1] => 200 )
    [max_purchases] => Array ( [0] => 1000 [1] => 100 )
    )
4

4 回答 4

0

如果您重新组织数组以首先包含索引,则可以获得更有序的结果:

<input name="product[$index][sub_name]">
<input name="product[$index][price]">
<input name="product[$index][random]">
<input name="product[$index][just_field]">    

每次添加新产品时,都会使用 javascript 更改索引,这样,当您在 php 中接收数据时,您可以执行以下操作:

$products = $_POST['product'];

foreach ($products as $product)
{
    $sub_name = $product['sub_name'];
    $random = $product['random'];
    $just_field = $product['just_field'];

    $sql = "Your SQL query"

    $mysqli->query($sql);
}

也许需要做更多的工作来改变 javascript 的 html 索引,但你的代码会变得更加清晰。

ps 这是一般的想法,我不测试它。

于 2013-07-19T16:07:55.533 回答
0

尝试使用

print_r($_POST["product"]);

输出整个数组。

您确定将公式传输的值传递给 $_POST 吗?

您能否发布输出。

于 2013-07-19T15:51:56.680 回答
0

看一下这个..

<?

//Connect to DB.
$link = mysqli_connect("HOST","USERNAME","PASSWORD","DATABASE") or die("Error " . mysqli_error($link));

//Consider your table structure in MYSQL. Don't depend on this structure.
//CREATE TABLE TBL1(SLNO PRIMARY KEY AUTO_INCREMENT, DETAIL_VALUE VARCHAR(200));
foreach( $_POST['product'] as $key => $value )
{
    //Get specific Tag.
    if( $key == 'price')
    {
        //Creating Query to insert. 
        $query = "insert into TBL1('DETAIL_VALUE') VALUES('".addslashes($value)."')";
        $mysqli_query($link, $query) or die;
    }
}


?>

有关查询或 php 的更多详细信息:请参阅 PHP.net。

于 2013-07-19T15:54:26.867 回答
0
$mysqli = new mysqli("localhost", "root", "password", "db name");

$field = $_POST['product'];

foreach ($field['price'] as $idx => $price)
{
    $sub_name = $field['sub_name'][$idx];
    $random = $field['random'][$idx];
    $just_field = $field['just_field'][$idx];

    $sql = "INSERT INTO table (sub_name, random, just_field, price) VALUES ('{$sub_name}','{$random}','{$just_field}','{$price}')";

    $mysqli->query($sql);


}
于 2013-07-19T16:00:13.200 回答