2016-02-17 3 views
0

У меня есть массив, содержащий 42 записи, каждый из которых имеет 6 полей, возвращаемых почтой jquery. Я использую следующий метод для разделения и организации данных, чтобы его можно было вставить с помощью инструкции вставки SQL.Вставка определенных столбцов из массива php в таблицу mysql

$values = array(); 
foreach ($data as $rowValues) { 
    foreach ($rowValues as $key => $rowValue) { 
      } 
$values[] = "('" . implode("', '", $rowValues) . "','".$yr."','".$qtr."')"; 
    } 

$query = "INSERT INTO table1 (field1, field2, field3, filed4) VALUES " . implode (', ', $values); 

Здесь проблема заключается в table1 имеет только 4 поля, и мне нужно только 4 столбцов в массиве, но массив содержит 7 столбцов. Я хочу, чтобы другие столбцы обновили другую таблицу. Как я могу это сделать?

+0

BTW: Петля Еогеасп 'Еогеасп ($ rowValues ​​как $ key => $ rowValue) 'не требуется, потому что он пуст. –

ответ

0

Решение 1:

Вы можете использовать array_slice для извлечения первых 2 элементов массива:

$values = array(); 
foreach ($data as $rowValues) { 
    $values[] = "('" . implode("', '", array_slice($rowValues, 0, 2)) . "','".$yr."','".$qtr."')"; 
} 

$query = "INSERT INTO table1 (field1, field2, field3, filed4) VALUES " . implode (', ', $values); 

в вашем втором запросе вы можете позвонить

foreach ($data as $rowValues) { 
    $values[] = "('" . implode("', '", array_slice($rowValues, 2)) ."')"; 
} 

, чтобы получить остальные элементы вашего массива.

Решение 2:

Вы можете просто использовать индексы массива:

$values = array(); 
foreach ($data as $rowValues) { 
    $values[] = "('".$rowValues[0]."','".$rowValues[2]."','".$rowValues[5]."','".$rowValues[6]."','".$yr."','".$qtr."')"; 
} 

$query = "INSERT INTO table1 (field1, field2, field3, filed4) VALUES " . implode (', ', $values); 

И в своем втором запросе:

$values = array(); 
foreach ($data as $rowValues) { 
    $values[] = "('".$rowValues[0]."','".$rowValues[2]."','".$rowValues[3]."','".$rowValues[4]."','".$rowValues[5]."','".$rowValues[6]."','".$yr."','".$qtr."')"; 
} 
+0

из массива $ values, я хочу использовать столбец s 0,2,5,6 в одном запросе и 0,2,3,4,5,6 во втором запросе. Как array_slice можно использовать в этом случае? – mansoondreamz

+0

@mansoondreamz Я добавил решение secord, которое должно решить вашу проблему. –

+0

спасибо, что работает – mansoondreamz

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