У меня есть динамическая матрица, где пользователи могут неограниченное количество наркотиков, данные поступают следующим образом:
[addindividuals] => [{"Drug":"Calpol","Strength":"100mg","Form":"Liquid","Quantity":"1"},{"Drug":"Paracetamol","Strength":"200mg","Form":"Tablet","Quantity":"16"}]
Я пытаюсь добиться, чтобы каждая строка была вставлена в новую строку (MySQL) и вставлена в соответствующие столбцы следующим образом:
Колонны: | Наркотик | Сила Форма | Количество
Row1 | Calpol | 100 мг | Жидкость | 1
Стр2 | Парацетамол | 200 мг | Планшет | 16
Я предполагаю, что с помощью функции разнесенных> (я новичок), а затем SQL для вставки строк?
Если у вас есть значения в виде коллекции строк json, сначала вам нужно взорвать, затем строку, затем использовать a для каждого, чтобы пройти через каждую строку, а затем использовать другое для каждого, чтобы создать одну строку. Пожалуйста, используйте приведенный ниже код, это может вам помочь.
$addindividuals = '{"Drug":"Calpol","Strength":"100mg","Form":"Liquid","Quantity":"1"},{"Drug":"Paracetamol","Strength":"200mg","Form":"Tablet","Quantity":"16"}';
$exploded_array = explode('},',$addindividuals);
$final_query = "INSERT INTO `table_name` (`Drug`,`Strength`,`Form`,`Quantity`) VALUES ";
$exploded_array[0] = $exploded_array[0].'}';
foreach($exploded_array as $exploded_element)
{
$single_row = '(';
$json_decode = json_decode($exploded_element,true);
foreach($json_decode as $key => $value)
{
$single_row .= "'$value',";
}
$single_row = substr($single_row,0,-1);
$single_row .= '),';
$final_query .= $single_row;
}
$final_query = substr($final_query,0,-1);
echo $final_query;
Других решений пока нет …