dedlfix: zweiter Wert speichern

Beitrag lesen

Tach!

ich bin echt am verzeifeln, ich schaff es einfach nicht zwei Werte in eine Tabelle zu speichern,

Schaffst du doch. Du meinst jedoch, beide Werte in denselben Datensatz zu speichern.

if(is_array($_POST)){

$_POST ist immer ein Array, wenn du es nicht gewaltsam geändert hast. Diese Bedingung ergibt also üblicherweise immer true.

foreach($_POST as $prefix => $post){
   mysql_query("Insert into entfernung ...);
  }

Das weniger wichtige mal weggelassen, und die Kontrollausgabe dazu mal angeschaut ...

Array
(
    [ef_bezeichnung] => Array
        (
            [0] => Bezeichnung1
            [1] => Bezeichnung2
        )

[ef_entfernung] => Array
        (
            [0] => Entfernung 1
            [1] => Entfernung 2
        )

[weiter] => Weiter zu Schritt 4
)

... zeigt einen überflüssigen Eintrag für den Submit-Button (der braucht kein name-Attribut, wenn du sein value nicht auswerten willst) und dass die zusammengehörigen Daten in zwei Unterarrays verteilt sind. Mit dem foreach arbeitest du sie getrennt ab. Kein Wunder, dass sie in getrennten Datensätzen landen.

<form id="form1" class="contact" name="form1" method="post" action="">
                 <input name="ef_bezeichnung[]" value="" />
                  <input name="ef_entfernung[]" value="" />

Es ist besser, die Bezeichnung anders zu wählen: ef[0][bezeichnung] und ef[0][entfernung]. (Die Bedeutung des ef erschließt sich mir nicht, ich habs einfach mal genommen.) Weitere Feldpaare bekommen statt der 0 dann einen anderen eindeutigen Wert, den du dir irgendwo merken musst, damit das Javascript ihn für jedes neue Feldpaar inkrementieren kann.

Mit dieser Umstrukturierung kannst du nun besser die zusammengehörigen Werte abfragen. Lass es dir mit einer Kontrollausgabe anzeigen, dann siehst du das (hoffentlich).

Außerdem ist noch zu sagen, dass du den Kontextwechsel missachtest und damit Platz 1 der Top-10-Webanwendungsfehler eingebaut hat.

dedlfix.