1 Formular und 4 Datensätze

Fruitgum

Erfahrenes Mitglied
Hallo,

mein Formular auszug:

HTML:
<table border="0" cellpadding="0" cellspacing="0">
<tbody><tr align="left" valign="top"><td width="200">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vorname und Name<br>
1) <input name="a_vorname" size="10" type="text" id="a_vorname"><input name="a_nachname" size="10" type="text" id="a_nachname"><br>
2) <input name="b_vorname" size="10" type="text" id="b_vorname"><input name="b_nachname" size="10" type="text" id="b_nachname"><br>
3) <input name="c_vorname" size="10" type="text" id="c_vorname"><input name="c_nachname" size="10" type="text" id="c_nachname"><br>
4) <input name="d_vorname" size="10" type="text" id="d_vorname"><input name="d_nachname" size="10" type="text" id="d_nachname"><br></td>
<td width="400">Zusatzbezeichnung (Beschreibung, Abteilung o. ä.; wird auf Pass vermerkt)<br>
<input name="a_bezeichnung" size="45" type="text" id="a_bezeichnung"><br>
<input name="b_bezeichnung" size="45" type="text" id="b_bezeichnung"><br>
<input name="c_bezeichnung" size="45" type="text" id="c_bezeichnung"><br>
<input name="d_bezeichnung" size="45" type="text" id="d_bezeichnung"><br></td>
</tr>
</tbody></table>
<br><br>


die Daten werden so übergeben:
PHP:
$sql2="INSERT INTO person_begleitung(personid, b_vorname, b_nachname, b_bezeichnung)VALUES(LAST_INSERT_ID(), '$a_vorname', '$a_nachname', '$a_bezeichnung')";
$result2=mysql_query($sql2);
if($result2){
echo " Eingetragen person_begleidung<BR><BR>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen, person_begleitung<BR><BR>";
}


$sql4="INSERT INTO person_begleitung(personid, b_vorname, b_nachname, b_bezeichnung)VALUES(LAST_INSERT_ID(), '$b_vorname', '$b_nachname', '$b_bezeichnung')";
$result4=mysql_query($sql4);
if($result4){
echo " Eingetragen person_begleidung<BR><BR>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen, person_begleitung<BR><BR>";
}


$sql5="INSERT INTO person_begleitung(personid, b_vorname, b_nachname, b_bezeichnung)VALUES(LAST_INSERT_ID(), '$c_vorname', '$c_nachname', '$c_bezeichnung')";
$result5=mysql_query($sql5);
if($result5){
echo " Eingetragen person_begleidung<BR><BR>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen, person_begleitung<BR><BR>";
}

$sql6="INSERT INTO person_begleitung(personid, b_vorname, b_nachname, b_bezeichnung)VALUES(LAST_INSERT_ID(), '$d_vorname', '$d_nachname', '$d_bezeichnung')";
$result6=mysql_query($sql6);
if($result6){
echo " Eingetragen person_begleidung<BR><BR>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen, person_begleitung<BR><BR>";
}



die tabele sieht so aus:
Code:
CREATE TABLE IF NOT EXISTS `person_begleitung` (
  `perbeg_id` bigint(20) NOT NULL auto_increment,
  `personid` bigint(20) NOT NULL default '0',
  `b_vorname` varchar(30) character set utf8 NOT NULL,
  `b_nachname` varchar(30) character set utf8 NOT NULL,
  `b_bezeichnung` varchar(300) character set utf8 NOT NULL,
  PRIMARY KEY  (`perbeg_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



In den Formular werden 4 Gäste in die Tabelle über mir geschrieben.
die 'perbeg_id' wird wie man sieht automatisch vergeben. Und unter 'personid' wird die Id die die für das gesamte Formlar vergeben eingetragen. Das heißt, wenn ich 4 Personen eintrage haben die eine unterschiedliche 'perbeg_id' das sie vergeben wird, aber eigentlich alle die gleiche 'personid'. Na ja also das wünsche ich mir:

so:

1 35 Heinrich Heine
2 35 Jogi Löw
3 35 Elvis Presley
4 35 Maik Mucke


doch leider sieht es so aus:

1 12 Frank Franz
2 1 Paul Koch Chef
3 2 Fritz Baumann
4 3 Silvio Krause


Und wie ich versuche das in die Datenbank einzutragen, ist doch auch großer müll.
Das muss doch auch in einen Abwasch gehen.

HELP!


LG
 
1 35 Heinrich Heine
2 35 Jogi Löw
3 35 Elvis Presley
4 35 Maik Mucke

Woher bekommst du denn die 35?
Bis jetzt fügst du immer für PersonId die zuletzt hinzugefügte Id (LAST_INSERT_ID())ein.

Die Html Tabelle ist auch komsich aufgebaut.
Warum machst du eine große Zeile und trennst das mit <br>?

HTML:
<tr><td><input name="a_vorname" size="10" type="text" id="a_vorname"></td><td><input name="a_nachname" size="10" type="text" id="a_nachname"></td><td><input name="a_bezeichnung" size="45" type="text" id="a_bezeichnung"></td></tr>

Das für jede Zeile, wäre doch viel einfacher.


Und natürlich kannst du dir eine Methode schreiben, um die Code renundanz zu verhindern:
PHP:
function insertPersonBegleitung($s){
$vorname = $_POST[$s."_vorname"];
$nachname= $_POST[$s."_nachname"];
$bezeichnung= $_POST[$s."_bezeichnung"];

$sql="INSERT INTO person_begleitung(personid, b_vorname, b_nachname, b_bezeichnung)VALUES(LAST_INSERT_ID(), '$vorname', '$nachname', '$bezeichnung')";
$result=mysql_query($sql);
if($result){
echo " Eingetragen person_begleidung<BR><BR>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen, person_begleitung<BR><BR>";
}
}

Dieser Methode übergibst du einfach nur den jeweiligen Buchstaben
 
Huhu,

Danke dir erstmal! Hast mir gut geholfen.

Das mit dem HTML-Code geht mir nichts an. Ist PHP-Smarty irgendwie, ich bekomme die nur geschickt und soll die Funktionen einbauen.

Danke für deinen Code...


Grüße
 
Zurück