Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Добавление данных в БД из нескольких массивов
Форумы портала PHP.SU » » Работа с СУБД » Добавление данных в БД из нескольких массивов

Страниц (1): [1]
 

1. unnomen - 04 Мая, 2015 - 13:44:06 - перейти к сообщению
Здравствуйте.
Возникла такая проблема. Нужно добавить несколько данных из отправленных массивов в БД через цикл. Отправляются 2 массива. Оба массива индексные. К примеру:

array_1 (1, 2, 3, 4, 5)
array_2 (1, 2, 3, 4, 5)

С одним массивом при добавлении в БД проблем нет.

CODE (SQL):
скопировать код в буфер обмена
  1. $sql = 'INSERT запрос id = :id';
  2. $s = $pdo->prepare($sql);
  3. foreach ($_POST['array_1'] AS $array_1) {
  4. $s->bindValue(':id', $array_1);
  5. $s->execute();
  6. }


Но у меня получается что-то подобие ассоциативного массива. Т.е. элемент "1" первого массива соответствует элементу "1" второго массива. Получается мне нужно использовать каждые элементы этих массивов вместе при каждой итерации.

Думал объединить эти 2 массива в ассоциативный.
Подскажите пожалуйста, как сделать лучше?


Если буду использовать такую конструкцию, будут ли значения массива pupils соответствовать значению массива marks? (по количеству они равны)

PHP:
скопировать код в буфер обмена
  1. foreach ($_POST['pupils'] as $pupil) {
  2.     $idmassive[] = array('pupilid' => $pupil);
  3. }
  4.  
  5. foreach ($_POST['marks'] as $mark) {
  6.     $idmassive[] = array ('markid' => $mark);
  7. }


В итоге мне нужно получить что-то похожее:

CODE (SQL):
скопировать код в буфер обмена
  1. $sql = 'INSERT INTO evaluations VALUES id_pupil = :pupilid, id_mark = :markid';
  2. $s = $pdo->prepare($sql);
  3. foreach ($idmassive AS $intoid) {
  4. $s->bindValue(':pupilid', $intoid['pupilid']);
  5. $s->bindValue(':markid', $intoid['markid']);
  6. $s->execute();
  7. }
2. LIME - 04 Мая, 2015 - 19:04:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. foreach ($_POST['pupils'] as $key => $pupil) {
  2.     $idmassive[$key]['pupilid'] = $pupil;
  3.     $idmassive[$key]['markid'] = $_POST['marks'][$key];
  4. }

 

Powered by ExBB FM 1.0 RC1