php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.10.2009, 17:16  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard [Erledigt] INSERT und UPDATE gleichzeitig?

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.

Ich hoffe, dass das irgendwie machbar ist...
Danke für Eure Gedanken.
Gruß Estebu

Geändert von estebu (02.10.2009 um 17:16 Uhr). Grund: Grussformel vergessen ;)
estebu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.10.2009, 17:46  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Irgendwie erschließt sich mir das Problem nicht. Nimm den Feldinhalt 'Ansprechpartner' und mach einen Update auf die Schule-Tabelle. Wenn der Feldinhalt nicht mit einem neuen Namen überschrieben wurde, dann schreibst du mit Update eben den alten Inhalt neu rein.

Alternativ kannst du dir den alten Namen in einer Session merken und nur dann, wenn was neues eingetragen wurde den Update machen. Ist Pott wie Deckel.
Wolla ist offline   Mit Zitat antworten
Alt 02.10.2009, 23:28  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard

Hm, also könnte ich Daten aus ein und demselben Formular in EINEM Arbeitsschritt INSERTEN und gleichzeitig in eine weitere Tabelle UPDATEN?

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 :


PHP-Code:
<?php require_once('../../Connections/connect.php'); ?>
<?php 
require_once('../../includes/func.php'); ?>
<?

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));
}
?>
estebu ist offline   Mit Zitat antworten
Alt 03.10.2009, 13:37  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Lass dir $updateSchulen mal ausgeben und schau dir an, ob das richtig zusammengesetzt wurde.
Wolla ist offline   Mit Zitat antworten
Alt 03.10.2009, 22:51  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard

Danke für den Tipp. Gibst Du mir kurz einen Hinweis, wie ich $updateSchulen ausgeben lassen kann? Denn das Script oben wird ja erst ausgeführt, wenn ich auf "submit" drücke und danach lande ich ja gleich wieder auf der vorherigen Seite....
estebu ist offline   Mit Zitat antworten
Alt 04.10.2009, 23:34  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Es steht dir frei, den header-Befehl für den Test auszukommentieren.
mermshaus ist offline   Mit Zitat antworten
Alt 04.10.2009, 23:40  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Kleiner Tipp: mach
Zitat:
//
vor dem
PHP-Code:
  header(sprintf("Location: %s"$BackGoTo)); 
Also so:

PHP-Code:
//  header(sprintf("Location: %s", $BackGoTo)); 
Dann noch
PHP-Code:
echo $updateSchulen
mit einbauen, Fertig!

PS: Kannst ja wieder wegmachen, damit es nicht als Kommentar gewertet wird ;D
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 05.10.2009, 00:18  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard

Jetzt habe ich es gefunden. Eigentlich war alles richtig, bis auf (wie meisstens) einen kleinen Schreibfehler.
Ich habe mir die Zeit genommen und Zeile für Zeile nachgelesen und bin drauf gestossen, dass in der Zeile

PHP-Code:
$updateSchulen sprintf("UPDATE Schulen SET ansprech=%s, ansprech_email=%s, ansprech_telefon=%s, anmerkung=%s, WHERE schul_id=%s" 

ja, richtig: ein Komma zuviel geschrieben steht. Findet ihr es auch?

Vielen herzlichen Dank für die Hilfe trotzdem. Habe nebenbei noch einiges gelernt und mitgenommen.

Gruß Estebu
estebu ist offline   Mit Zitat antworten
Alt 05.10.2009, 00:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Ich habe mir die Zeit genommen und Zeile für Zeile nachgelesen
Für sowas gibts den PHP-Parser und die eingebauten Fehlermeldungsmechnismen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Sinnvoller Bilder mit INSERT oder UPDATE in DB speichern? AnnyKey Datenbanken 3 12.05.2009 01:06
Insert ... On duplicate key update Jacke Datenbanken 2 08.04.2009 14:11
nested sets update und insert auf eine tabelle in einer aktion litterauspirna Datenbanken 9 09.11.2008 13:57
INSERT.. ON DUPLICATE KEY UPDATE cycap Datenbanken 3 26.10.2007 13:08
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Update und Insert in einem ? sponer Datenbanken 6 01.07.2007 16:02
Update -> AffectedRows -> Insert R4v3r Datenbanken 6 12.06.2007 11:13
INSERT.. on duplicate key UPDATE... - sinnvoll? mrSpok Datenbanken 3 28.11.2006 10:14
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
[Erledigt] mysql: INSERT und wenn vorhanden UPDATE Datenbanken 7 07.01.2006 09:54
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
PHP-Fehlermeldung, weiss nicht mehr weiter PHP Tipps 2005-2 12 21.09.2005 12:56
[Erledigt] fehler den ich noch nie gesehen habe Datenbanken 7 09.06.2005 14:29
Insert und Update Befehl funktioniert nicht Anuschka Datenbanken 2 03.09.2004 00:38
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql insert und update gleichzeitig, mysql update insert gleichzeitig, mysql update und insert gleichzeitig, insert und update gleichzeitig, mysql update and insert gleichzeitig, insert update gleichzeitig, mysql insert or update, \insert und update gleichzeitig\, mysql alter und insert gleichzeitig, lsmw gleichzeitig insert update, insert update zusammen namen, sqlite insert or update, update und insert gleichzeitig, mysqlsql update vorher insert, mysql gleichzeitiger insert update, mysql update submit, mssql insert update gleichzeitig, sqlite insert update gleichzeitig, update und insert parallel mysql, sql insert und update gleichzeitig

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum