Dodanie kilku rekordów do tablicy za jednym razem

0

Mam problem z dodawaniem kilku rekordów do tablicy na raz.
Działanie jest takie:
Formularz gdzie pole odp, które jest traktowane jako element tablicy (name=odp[]), ponieważ może być ich różna ilość - są dynamicznie dodawane.

Próbuję zczytać wszystko i dodać kilka rekordów na raz, niestety dodaje mi tylko jeden rekord z ostatnim elementem.

Kod odpowiedzialny za dodawanie nowego inputa:

function DodajElement()
{
var element = document.createElement('input');
element.setAttribute('type', 'text');
var num = 0;

element.setAttribute('name', 'odp[]');
element.style.display = "block";
element.style.margin= "2px";
element.style.width="50%";

var kolejny = document.getElementById('add');
document.forms['formularz'].insertBefore(element,kolejny);
}
 

Kod odpowiedzialny za dodawanie do bazy:

 if (!empty($_POST['odp'])) 
  $tab=$_POST['odp'];
  
foreach(array_keys($tab) as $n){
$id_odp=$id_ankiety+rand(100000,999999);
$sql2="INSERT INTO odp_zwykla (id,id_zwyklej,odp)
VALUES
('$id_odp','$id_ankiety','$tab[$n]')";  
}

Szczerze powiedziawszy jestem nowicjuszką w tym względzie.
Zastanawiam się czy do przesłania nie są potrzebne cookies.

0

Cookies to zupełnie co innego i nie wiem skąd ten pomysł.
Nie wiem po co Ci też array_keys w foreachu o.O

foreach ($_POST['odp'] as $odpowiedz) {
  var_dump($odpowiedz);
}

Druga rzecz - masz poważną dziurę w kodzie. Poczytaj o SQL Injection.

0

Niestety ten sposób również nie działa. Dodaje mi nadal ostatnią wartość.
Czyli w sumie jeden rekord.
Nie mam pojęcia co może być nie tak.

0

Ech......

Daj zatem formularz + kod php, zpakuj w zipa i dołącz, poprawię Ci i oddam.

0

Przepraszam, nie miałam kiedy odpisać.
Kod już działa. Okazało się, że jeden z warunków powinnam umieścić w pętli, a nie pod nią:

 if (!mysql_query($sql2,$con))
  {
  die('Error: ' . mysql_error());
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1