2013-03-27 2 views
0
Array 
(
[pid] => Array 
    (
     [0] => 2 
     [1] => 3 
    ) 

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

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

) 

У меня есть результат вышеупомянутого массива из некоторой обработки. с этим мне нужно обновить в базу данных, как показано ниже таблицеОбработка массива и вставка в таблицу mysql

pid price qty 
2 20 2 
3 20 1 
+3

Какая у вас проблема? – 2013-03-27 11:58:07

+0

Итак, обновите его и сообщите нам, если у вас возникла проблема ... – webnoob

ответ

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

Где сумма должна быть count количества строк у вас есть

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 
     ) 

) 

цикл этот массив и добавить к БД - Так что вы можете добавить две записи в БД

+1

Как это обновить базу данных? Он obviosly уже имеет выход в массиве. – webnoob

+0

Я только что обработал массив, чтобы с помощью цикла он мог обновиться до DB –

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

Где, я использовал метод вставки.

0

это неправильный способ сделать это, я хотел бы использовать индексированный массив, а затем построить цикл по каждому элементу, который будет обрабатывать каждый 1 отдельно, что-то вроде:

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

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

и из этого затем построить Еогеасп и проведите каждый запрос там.

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

    mysql_query($query); 
} 
Смежные вопросы