Вставить записи объекта в базу данных с PDO

Ситуация:

У меня есть объект, который был перенесен через AJAX в мой файл PHP, который должен вставить одну или несколько строк в мою базу данных.

В файле PHP я использую json_decode, чтобы заставить мой объект работать на PHP

$insertDatesArray = json_decode($_REQUEST['insertDatesArray']);

Когда я вывожу этот объект, я получаю это в PHP:

object(stdClass)#2 (4) {
["alterstufe"]=>
array(3) {
[0]=>    string(1) "1"[1]=>    string(1) "1"[2]=>    string(1) "1"}
["sunday"]=>
array(3) {
[0]=>    string(10) "14.09.2014"[1]=>    string(10) "21.09.2014"[2]=>    string(10) "28.09.2014"}
["help1"]=>
array(3) {
[0]=>    string(1) "6"[1]=>    string(1) "7"[2]=>    string(1) "8"}
["help2"]=>
array(3) {
[0]=>    string(1) "7"[1]=>    string(1) "8"[2]=>    string(1) "6"}
}

Это код, который генерирует мой объект:

var date = new Array();
var alterstufen = new Array();
var helpperson1 = new Array();
var helpperson2 = new Array();
var elems2 = $('#plan tbody tr');
var count2 = elems2.length;
$('#plan tbody tr').each(function(){
alterstufen.push($('.pp-age').val());
date.push($('#pp-service-date', this).val());
helpperson1.push($('.selector-help1', this).val());
helpperson2.push($('.selector-help2', this).val());
});
var days = new Object();
days.alterstufe = alterstufen;
days.sunday = date;
days.help1 = helpperson1;
days.help2 = helpperson2;
var insertDatesArray = JSON.stringify( days );

План:

Теперь то, что я должен иметь, это:

Мне нужно вставить каждую строку (с одним значением из каждого свойства объекта) в мою базу данных через PHP :: PDO
Прямо сейчас я застрял в том, как я могу установить переменные для каждого значения.

Мой код выглядит так прямо сейчас:

foreach ($insertDatesArray as $obj => $val) {
$alterstufe = $val->alterstufe;
$date = $val->date;
}

Эта проблема:

Я не знаю, как я могу получить значение из каждого свойства объекта, чтобы установить их вместе и вставить данные в мою базу данных.

0

Решение

Вы можете сделать это так:

$entriesCount = count($insertDatesArray->alterstufe);

for($i = 0; $i < $entriesCount; ++$i) {
var_dump($insertDatesArray->alterstufe[$i]);
var_dump($insertDatesArray->sunday[$i]);
var_dump($insertDatesArray->help1[$i]);
var_dump($insertDatesArray->help2[$i]);

// execute your query here with the data above
}

Но, как первый комментарий ниже, ваш вопрос говорит о том, что, вероятно, проще и чище изменить клиентскую часть.

Поэтому я бы изменил часть JS вместо:

var data = new Array();

$('#plan tbody tr').each(function(){
data.push({
alterstufen: $('.pp-age').val()
date: $('#pp-service-date', this).val(),
help1: $('.selector-help1', this).val(),
help2: $('.selector-help2', this).val()
});
});

Тогда вы получите хороший пакет «все в одном» на стороне сервера.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]