Hallo Gemeinde,
eine kurze Frage: Ist es möglich, Daten, die aus einem Formular kommen, zum Teil als INSERT in eine - und zum anderen Teil als UPDATE in eine andere Tabelle zu schreiben?
Kurz zur Erklärung:
Ich möchte in eine Tabelle Anmeldungen für Kinobesuche eintragen.
Bei einer Neuanmeldung wähle ich zuerst die Schule aus, die in unserer Datenbank eingetragen ist. Diese Schule hat dann auch einen Ansprechpartner, der beim Eintragen der Schule mit hinzugefügt wurde. Das kann aber unter Umständen schon einige Zeit zurück liegen.
Wenn ich nun also diese Schule für einen neuen Kinobesuch eintragen möchte, dann wähle ich sie durch eine Drop-Down-Liste aus und werde danach auf ein weiteres Formular geleitet, indem ich nun die Zeit und das jeweilige Kino und all die Sachen, die dazu gehören, in eine Tabelle „Anmeldungen“ eintragen kann. Gleichzeitig erscheint aber neben den „neuen“ leeren Feldern für den „INSERT INTO Anmeldungen…“ auch das Feld „Ansprechpartner“ aus der Tabelle „Schulen“ , welches abhängig davon, welche Schule ich vorher ausgewählt habe, mit dem Ansprechpartner gefüllt bzw. ausgegeben wird. Wenn sich der Ansprechpartner aber seit der letzen Anmeldung (z.B: aus dem Vorjahr) nun geändert haben sollte, möchte ich hier nun also eine Änderung vornehmen und sie zum INSERT der neuen Daten in die „Anmeldungen“ gleichzeitig mittels UPDATE dann in die Tabelle der Schulen („UPDATE Schulen SET…“) eintragen lassen.
Mein Code sieht nämlich wie folgt aus und funktioniert aber nicht (daher wollt ich vorerst mal fragen, ob es überhaupt möglich ist). Es gibt keine Fehlermeldung nach dem Absenden des Formulars, aber die Daten aus den „UPDATE“ Feldern werden nicht in die Tabelle eingetragen, sondern nur die „INSERT“ Daten :
***********************************************
if (isset($_GET[„rid“])) { // Suche nach BackGoTo URL
mysql_select_db($database_connect, $connect);
$query_Seite = „SELECT * FROM Seite WHERE Seite.id=“.$_GET[„rid“];
$Seite = mysql_query($query_Seite, $connect) or die(mysql_error());
$row_Seite = mysql_fetch_assoc($Seite);
$BackGoTo = „…/index.php?id=“.$row_Seite[„id“]."&selectedNr=".$selectedNr."&VNr=".$VNr;
}
/*------------------------Leerzeichen entfernen----------------------*/
$Ansprech_Email = str_replace(" „, „“, $_POST[‚Ansprech_Email‘]);
$Ansprech_Telefon = str_replace(“ ", „“, $_POST[‚Ansprech_Telefon‘]);
/*-------------------------------------------------------------------*/
if ((isset($_POST[„MM_update“])) && ($_POST[„MM_update“] == „form1“)) {
$updateSQL = sprintf(„INSERT INTO Anmeldung (ref_PNr, ref_Schule, schueler, begleiter, rollis) VALUES (%s,%s,%s,%s,%s)“,
GetSQLValueString($_POST[‚PNr‘], „int“),
GetSQLValueString($_POST[‚Schule‘], „int“),
GetSQLValueString($_POST[‚Schueler‘], „int“),
GetSQLValueString($_POST[‚Begleiter‘], „int“),
GetSQLValueString($_POST[‚Rollis‘], „int“));
mysql_select_db($database_connect, $connect);
$Result1 = mysql_query($updateSQL, $connect) or die(mysql_error());
}
if ((isset($_POST[„MM_update“])) && ($_POST[„MM_update“] == „form1“)) {
$updateSchulen = sprintf(„UPDATE Schulen SET ansprech=%s, ansprech_email=%s, ansprech_telefon=%s, anmerkung=%s, WHERE schul_id=%s“,
GetSQLValueString($_POST[‚Ansprech‘], „text“),
GetSQLValueString($Ansprech_Email, „text“),
GetSQLValueString($Ansprech_Telefon, „text“),
GetSQLValueString($_POST[‚Anmerkung‘], „text“),
GetSQLValueString($_POST[‚Schule‘], „int“));
mysql_select_db($database_connect, $connect);
$Result2 = mysql_query($updateSchulen, $connect) or die(mysql_error());
header(sprintf(„Location: %s“, $BackGoTo));
}
?>
***********************************************
Danke für Eure Gedanken.
Gruß Estebu
P.S. Kann ich mir $updateSchulen auch irgendwo ausgeben lassen, damit ich mal sehen kann, was da eigentlich passiert? Ich wüsste nämlich nicht wie, denn das Script wird ja erst nach dem Klick auf „Submit“ ausgeführt und ich lande dann ja gleich wieder auf der vorherigen Seite…