2015-12-02 2 views
-1

Это массив, в котором я хочу проанализировать и вставить отдельные значения в базу данных.Вставка значений многомерного php-массива в таблицу mysql?

Array 
(
    [0] => Array 
     (
      [custInfo] => Ujwal 9975022560 
      [rate] => 24000 
      [weight] => 21.00000 
      [desc] => GENTS ANGTHI 22k NO STONE 
      [makingAmt] => 200 
      [sum_total] => RS.156283.38 
      [vat] => RS.3064.38 
      [itemTotal] => 51073 
      [barcode] => BQSP78BB 
      [net_rate] => 24200 
      [date] => 2015-12-02 
      [invoiceNo] => 2 
      [bill_type] => Invoice 
     ) 
    [1] => Array 
     (
      [custInfo] => Ujwal 9975022560 
      [rate] => 24000 
      [weight] => 21.00000 
      [desc] => GENTS ANGTHI 22k NO STONE 
      [makingAmt] => 200 
      [sum_total] => RS.156283.38 
      [vat] => RS.3064.38 
      [itemTotal] => 51073 
      [barcode] => BQSP78BB 
      [net_rate] => 24200 
      [date] => 2015-12-02 
      [invoiceNo] => 2 
      [bill_type] => Invoice 
     ) 
    [2] => Array 
     (
      [custInfo] => Ujwal 9975022560 
      [rate] => 24000 
      [weight] => 21.00000 
      [desc] => GENTS ANGTHI 22k NO STONE 
      [makingAmt] => 200 
      [sum_total] => RS.156283.38 
      [vat] => RS.3064.38 
      [itemTotal] => 51073 
      [barcode] => BQSP78BB 
      [net_rate] => 24200 
      [date] => 2015-12-02 
      [invoiceNo] => 2 
      [bill_type] => Invoice 
     ) 
) 

, как я могу принять этот многомерный массив и вставить в таблицу тузд с помощью php.I хотите сделать вставку что-то вроде этого:

$sql = "INSERT INTO selected_items 
(custInfo, invoiceNo, barcode, desc, 
weight, rate, makingAmt,net_rate, 
itemTotal,vat,sum_total,bill_type,date) 
VALUES 
('$custInfo','$invoiceNo','$barcode','$desc', 
'$weight','$rate','$makingAmt','$net_rate', 
'$itemTotal','$vat','$sum_total','$bill_type','$date')"; 
$res = mysqli_query($sql,$con); 

Я пытался используя следующий код, данные вставляются, но в неправильные столбцы. enter image description here

<?php 
require "init.php"; 
if($_POST){ 
$arrAssoc = json_decode(stripslashes($_POST['jsonarray']), true); 
$fields = array_map(function($v){ 
    return implode("','",$v); 
},$arrAssoc); 
$query="INSERT INTO selected_items 
    (custInfo, invoiceNo, barcode, description, 
    weight, rate, makingAmt,net_rate, 
    itemTotal,vat,sum_total,bill_type,date) 
    VALUES ('".implode("'),('",$fields)."')"; 
if(mysqli_query($con,$query)) 
{ 
     echo "Data inserted"; 
}else{ 
     echo "Data insertion error".mysqli_error($con); 
} 
}                                                  

else{ 
print_r("Nothing came from android code"+"Data insertion error".mysqli_error($con)); 
} 
?> 
+0

Просто используйте 'foreach' и цикл против вашего массива. –

+0

@Uchiha Я новичок в программировании, вы можете дать пример кода. Спасибо –

+0

@Uchiha спасибо Прошу, что пример –

ответ

-2

Try, как с помощью array_map и implode функция вроде как

$fields = array_keys($your_array[0]); 
$values = array_map(function($v){ 
    return implode("','",$v); 
},$your_array); 

$query="INSERT INTO selected_items 
(".implode(',',$fields).") 
VALUES ('".implode("'),('",$values)."')"; 

Demo

+1

@Uchicha Как круто, как всегда, вы. !! ;) – PRANAV

+1

@Uchiha удивительный код, спасибо большое, но у меня проблемы с данными вставлены в неправильные столбцы :) –

+0

@Uchiha мне нужно положить $ fields = array_keys ($ your_array [0]); внутри цикла for как for (int i = 0; i <10; i ++) {$ fields = array_keys ($ your_array [i]);} –

Смежные вопросы