处理数组并插入mysql表

时间:2013-03-27 11:56:58

标签: php mysql arrays

Array
(
[pid] => Array
    (
        [0] => 2
        [1] => 3
    )

[price] => Array
    (
        [0] => 20
        [1] => 20
    )

[qty] => Array
    (
        [0] => 2
        [1] => 1
    )

)

我从某些处理中获得了上述数组的结果。有了这个我需要更新到数据库,如下表

pid price qty
2   20    2
3   20    1 

4 个答案:

答案 0 :(得分:1)

$i = 0;
while( $i < count( $YourArray['pid']) ) {
    $query = "INSERT INTO `tableName`(`pid`, `price`, `qty`) VALUES( ?, ?, ? )";
    $stmt = $con->prepare( $query );
    $stmt->execute(
        array(
            $YourArray['pid'][$i],
            $YourArray['price'][$i],
            $YourArray['qty'][$i]
        )
    );
    $i++;
}

在哪里,我使用了插入方法。

答案 1 :(得分:0)

for(i=0;i<amount;i++){
    echo $array['pid'][i];
    echo $array['price'][i];
    echo $array['qty'][i]; 
}

其中金额必须是您拥有的行数count

答案 2 :(得分:0)

试试这个:

$array = array("pid" => array(2,3),"price" => array(20,20),"qty" => array(2,1));
array_unshift($array, null);
$res   = call_user_func_array('array_map', $array);

echo "<pre>";
print_r($res);

输出:

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 20
            [2] => 2
        )

    [1] => Array
        (
            [0] => 3
            [1] => 20
            [2] => 1
        )

)

循环此数组并添加到DB - 这样您就可以在DB中添加两个条目

答案 3 :(得分:0)

这是一种错误的方法,我会使用一个索引数组,然后构建一个foreach循环,它将分别处理每个1,如:

$values = array();
$values[] = array(
                  'pid' => 2,
                  'price' => 20,
                  'qty' => 2
                 );

$values[] = array(
                  'pid' => 3,
                  'price' => 20,
                  'qty' => 1
                  );

然后从中构建一个foreach循环并在那里运行每个查询

foreach ($values as $value) {
   $query = "insert into blah 
              set pid = " . $value['pid'] . ",
              price = " . $value['price'] . ",
              qty = " . $value['qty'] . ";";

   mysql_query($query);
}