0
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

4 に答える 4

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++;
}

ここで、挿入には

于 2013-03-27T12:02:19.707 に答える
0

これは間違った方法です。インデックス付き配列を使用してから、次のように、1 つずつ個別に処理する foreach ループを作成します。

$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);
}
于 2013-03-27T12:14:41.517 に答える
0
for(i=0;i<amount;i++){
    echo $array['pid'][i];
    echo $array['price'][i];
    echo $array['qty'][i]; 
}

countamountは、持っている行の量でなければなりません

于 2013-03-27T12:00:13.277 に答える
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に2つのエントリを追加できるように

于 2013-03-27T12:01:26.467 に答える