У меня есть форма, где я ввожу: HTML: <form action="" method='post'> <input name='data[]' value='Test1'> <input name='data[]' value='Test2'> <button>Добавить</button> </form> Я получаю массив такого вида: Array( [0] => ''Test1", [1] => "Test2" ) Теперь мне нужно записать этот массив в базу данных, причем в 2 таблицы. Первая которая получает тупо имена Point, а вторая которая делает объединение, т.е для примера БД: ID Point1 Point2 1 Test1 Test2 Я делаю таким образом: PHP: foreach ($array['data'] as $key=>$value) { if( !empty($value) ) { self::db()->query('INSERT INTO ?n(?n) VALUE(?s)', 'points', 'name', $value); foreach ($array['data'] as $key2=>$value2) { if( !empty($value2)) { self::db()->query('INSERT INTO ?n(?n,?n) VALUE(?s,?s)', 'pointsCouple', 'point1', 'point2', $value, $value2); } } } Проблема в том, что при втором цикле он заносит данные таким образом: ID Point1 Point2 0 Test1 Test1 1 Test1 Test2 2 Test2 Test1 3 Test2 Test2 Мне нужно, чтобы было только Test1 и Test2. --- Добавлено --- Для более наглядного примера картинками. Как видим здесь мы вносим точки: А здесь первая точка со всеми остальными, потом вторая, третья и т.д.
Отредактируй html форму и нет проблем, а цикл в цикле делать не имеет смысла, так как эта задача даже не через циклы решается, у тебя всего 1 значение в переменной
Решил задачу таким образом: PHP: $i=1; foreach ($array['tm'] as $count) { if( !empty($count) ) { $countTM+=1; } } foreach ($array['tm'] as $value) { if (!empty($value)) { self::db()->query('INSERT INTO ?n(?n) VALUES(?s)', 'points', 'name', $value); if( $countTM==$i ) $i=$i-$countTM; self::db()->query('INSERT INTO ?n(?n,?n) VALUE(?s,?s)', 'pointsCouple', 'point1', 'point2', $value, $array['tm'][$i]); $i++; } } Теперь вносит, как надо мне.