dedlfix: Vielen Dank euch allen

Beitrag lesen

Tach!

$counter = count($_POST['ef_bezeichnung']);

for ($i = 0; $i < $counter; $i++) {
    mysql_query("Insert into entfernung set ef_in_ID = '".$Id."', ef_bezeichnung = '".$_POST['ef_bezeichnung'][$i]."', ef_entfernung = '".$_POST['ef_entfernung'][$i]."'");
  }


>   
> ich weiß nicht ob dieses die beste Lösung ist, aber sie geht.  
  
Ist sie nicht. Zum einen ist sie, wie schon dein Ausgangsocode, immer noch anfällig für SQL-Injections. Da fehlen mindestens zwei Verwendungen von mysql\_real\_escape\_string(). (Beim $Id ist es eventuell entbehrlich, das kann man aber aus dem gezeigten Code nicht mit Sicherheit erkennen.)  
  
Du hast dich entschieden, das HTML so zu lassen und stattdessen die Zugehörigkeiten über einen gemeinsamen Indexwert wiederherzustellen. Kann man so machen. Trotzdem kann man den Code noch optimieren. Den $counter braucht es nicht, wenn du eine foreach-Schleife verwendest:  
  
~~~php
foreach ($_POST['ef_bezeichnung'] as $i => $bezeichnung)  
  mysql_query(  
    sprintf("Insert into entfernung set ef_in_ID = '%s', ef_bezeichnung = '%s', ef_entfernung = '%s'",  
      mysql_real_escape_string($Id),  
      mysql_real_escape_string($bezeichnung),  
      mysql_real_escape_string($_POST['ef_entfernung'][$i])));

dedlfix.