php在数据库中一次将数据保存为两行?

php在数据库中一次将数据保存为两行?,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,我有一张这样的表格 <form class="product-data" action=""> <table> <tr class="data-row"> <td> <input type="number" name="finance[a][source_unit]" > </td> <td

我有一张这样的表格

<form class="product-data" action="">
    <table>
        <tr class="data-row">
            <td> 
                <input type="number" name="finance[a][source_unit]" >
            </td>
            <td >
                <input type="number" name="finance[a][target_unit]">
            </td>
            <td>
                <input type="number" name="finance[a][client_price]">
            </td>
            <td>
                <input type="number" name="finance[a][client_salary]" >
            </td>
    </tr>
    <tr class="data-row">
        <td>
            <input type="number" name="finance[b][source_unit]" >
        </td>
        <td >
            <input type="number" name="finance[b][target_unit]">
        </td>
        <td>
            <input type="number" name="finance[b][client_price]">
        </td>
        <td>
            <input type="number" name="finance[b][client_salary]" >
        </td>
    </tr>
    </table>
</form>
Array
(
    [a] => Array
        (
            [source_unit] => 3213
            [target_unit] => 657654322343
            [client_price] => 5435.00
            [client_salary] => 897.00
        )

    [a] => Array
        (
            [source_units] => 67656565
            [target_units] => 43243
            [client_price] => 23432.00
            [client_salary] => 6546.00
        )

)
Id, product_type, source_unit, target_unit, client_price, lient_salary
1       A            3213        657654322343     5435           897
2       B            67656565     43243           23432           6546
它向我展示了一个这样的数组

<form class="product-data" action="">
    <table>
        <tr class="data-row">
            <td> 
                <input type="number" name="finance[a][source_unit]" >
            </td>
            <td >
                <input type="number" name="finance[a][target_unit]">
            </td>
            <td>
                <input type="number" name="finance[a][client_price]">
            </td>
            <td>
                <input type="number" name="finance[a][client_salary]" >
            </td>
    </tr>
    <tr class="data-row">
        <td>
            <input type="number" name="finance[b][source_unit]" >
        </td>
        <td >
            <input type="number" name="finance[b][target_unit]">
        </td>
        <td>
            <input type="number" name="finance[b][client_price]">
        </td>
        <td>
            <input type="number" name="finance[b][client_salary]" >
        </td>
    </tr>
    </table>
</form>
Array
(
    [a] => Array
        (
            [source_unit] => 3213
            [target_unit] => 657654322343
            [client_price] => 5435.00
            [client_salary] => 897.00
        )

    [a] => Array
        (
            [source_units] => 67656565
            [target_units] => 43243
            [client_price] => 23432.00
            [client_salary] => 6546.00
        )

)
Id, product_type, source_unit, target_unit, client_price, lient_salary
1       A            3213        657654322343     5435           897
2       B            67656565     43243           23432           6546
现在有人能告诉我如何在每一行保存它们吗。我的数据库表是这样的,数据应该这样保存

<form class="product-data" action="">
    <table>
        <tr class="data-row">
            <td> 
                <input type="number" name="finance[a][source_unit]" >
            </td>
            <td >
                <input type="number" name="finance[a][target_unit]">
            </td>
            <td>
                <input type="number" name="finance[a][client_price]">
            </td>
            <td>
                <input type="number" name="finance[a][client_salary]" >
            </td>
    </tr>
    <tr class="data-row">
        <td>
            <input type="number" name="finance[b][source_unit]" >
        </td>
        <td >
            <input type="number" name="finance[b][target_unit]">
        </td>
        <td>
            <input type="number" name="finance[b][client_price]">
        </td>
        <td>
            <input type="number" name="finance[b][client_salary]" >
        </td>
    </tr>
    </table>
</form>
Array
(
    [a] => Array
        (
            [source_unit] => 3213
            [target_unit] => 657654322343
            [client_price] => 5435.00
            [client_salary] => 897.00
        )

    [a] => Array
        (
            [source_units] => 67656565
            [target_units] => 43243
            [client_price] => 23432.00
            [client_salary] => 6546.00
        )

)
Id, product_type, source_unit, target_unit, client_price, lient_salary
1       A            3213        657654322343     5435           897
2       B            67656565     43243           23432           6546

我有两个解决方案。一旦仅针对此场景进行了调整:

$f = $_POST['finance'];

// insert first row
$query = "INSERT INTO `table` VALUES (NULL, 'A', {$f['a']['source_unit']}, {$f['a']['target_units']}, {$f['a']['client_price']}, {$f['a']['client_salary']})";
mysql_query($query);

// insert second row
$query = "INSERT INTO `table` VALUES (NULL, 'B', {$f['b']['source_unit']}, {$f['b']['target_units']}, {$f['b']['client_price']}, {$f['b']['client_salary']})";
mysql_query($query);
或者,如果对多行具有更通用的功能:

$f = $_POST['finance'];

foreach($f as $key => $item) {
    // assign key of the letter as value to insert
    $letter = strtoupper($key);

    // insert a row
    $query = "INSERT INTO `table` VALUES (NULL, '{$letter}', {$item['source_unit']}, {$item['target_units']}, {$item['client_price']}, {$item['client_salary']})";
    mysql_query($query);
}

循环遍历数组并相应地插入或更新

    foreach($finances as $key => $data)
    {
    //based on the $key if value exists in database update else insert
    echo $key.'<br />';
    echo $data['source_unit'].'<br />';
    echo $data['target_unit'].'<br />';
    echo '<hr />';
    }

var_dumpcount$Financials的结果是什么;?我只是wondering@Loko它是这样的数组2{[a]=>array4{[source_unit]=>string4 3213[target_unit]=>string12 657654322343[client_price]=>string7 5435.00[client_salary]=>string6 897.00}[b]=>array4{[source_units]=>string8 676565[target_units]=>string5 43243;[client_price]=>string8 23432.00[client_salary]=>string7 6546.00}为什么这两个数组都是[A]?第二个数组不应该是[B]?这不是var_dumpcount$Financials的结果;你能试着找到var_dumpcount$Financials的结果吗??好的,谢谢,让我快速检查一下。不要使用mysql…这是一个糟糕的答案,因为mysql部分。