SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.06.2008, 00:04:53
paulbrause paulbrause ist offline
Anfänger
 
Registriert seit: Jun 2008
Alter: 47
Beiträge: 3
Mehrere Tabellen gleichzeitig updaten

Hallo!

Hab da ein "kleines" Problem, bzw. eine Fragestellung, aber erst mal die Ausgangssituation:

Bei dem Ganzen handelt sich um ein Bundesliga-Tippspiel, und in 3 Tabellen speichere ich die Partien, Ergebnisse und abgegebene Tipps.

Die Tabellen sehen dabei (vereinfacht gesagt) wie folgt aus:

liga_spiele {
ID (Einmalige ID des Spiels)
HEIM (Heimmannschaft)
GAST (Gastmannschaft)
}

liga_ergebnisse {
SPIEL (ID des Spiels)
HEIMTORE (Tore der Heimmannschaft)
GASTTORE (Tore der Gastmannschaft)
}

liga_tipps {
SPIEL (ID des Spiels)
TIPPER (Tippername)
HEIMTORE (Tipp der Tor der Heimmannschaft)
GASTTORE (Tipp der Tor der Gastmannschaft)
}

Als Beispieldatensatz findet man z.B.:
liga_spiele ("12", "Schalke", "HSV)
liga_ergebnisse ("12", "2", "1")
liga_tipps ("12", "Testuser", "3", "0")

Also hat die Partie "Schalke - HSV" die ID 12, ist 2:1 ausgegangen und wurde vom Spieler Testuser mit 3:0 getippt.

Was ich nun eigentlich will: ich möchte in allen 3 Tabellen die ID von 12 auf 16 ändern, wenn möglich in einem Query.

Also hab ich folgendes ausprobiert (ich teste dabei mit dem MySQL Query Browser):
PHP-Code:
UPDATE liga_tipps AS yliga_ergebnisse AS zliga_spiele AS x
SET y
.spiel 16z.spiel 16x.id 16
WHERE y
.spiel x.id
AND z.spiel x.id
AND x.id 12 
Funktioniert soweit auch bestens...
ABER: ich kenne die bisherige ID des Spiels bei dem UPDATE eigentlich noch nicht, sondern nur die Namen der beiden Teams.

Also hab ich folgendes probiert:
PHP-Code:
UPDATE liga_tipps AS yliga_ergebnisse AS zliga_spiele AS x
SET y
.spiel 16z.spiel 16x.id 16
WHERE y
.spiel x.id
AND z.spiel x.id
AND x.id = (SELECT s.id FROM liga_spiele AS s WHERE s.heim 'Schalke' AND s.gast 'HSV'
Funktioniert aber leider nicht, da man bei einem UPDATE wohl kein SUBQUERY mit einer der zu aktualisierenden Tabellen machen darf.

Daher hab ich etwas geforscht und bin auf einen Workaround gestossen:
PHP-Code:
UPDATE liga_tipps AS yliga_ergebnisse AS zliga_spiele AS x
SET y
.spiel 16z.spiel 16x.id 16
WHERE y
.spiel x.id
AND z.spiel x.id
AND x.id = (SELECT s.id FROM (SELECT FROM liga_spiele) AS s WHERE s.heim 'Schalke' AND s.gast 'HSV'
Das komische daran in, das der SUBSELECT einzeln ausprobiert einwandfrei funktioniert und auch den Wert 12 zurückgibt. In Kombination mit dem UPDATE allerdings bekomme ich kein Ergebnis, das heißt, es wird in keiner Tabelle etwas geändert. Eine Fehlermeldung bekomme ich also auch nicht, also von der Syntax her sollte alles stimmen, der Query Browser zeigt mir lediglich "Abfrage erzeugte keine Ergebnismenge".

Doch woran liegt's? Was kann/muss ich ändern, oder ist das mit einem einzigen Query gar nicht möglich und ich muss erst das SELECT ausführen und danach erst das UPDATE?!?

Wie das ganze performance-technisch ausschaut ist mir in dem Falle total egal, da das ganze nur einmalig ausgeführt werden soll.

Ich hoffe, dass das irgendwo verständlich ist und bedanke mich schon mal in Vorfeld für jede Hilfe.

paulbrause
Mit Zitat antworten
  #2  
Alt 09.06.2008, 08:40:54
stb stb ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 40
AW: Mehrere Tabellen gleichzeitig updaten

Wie wär's, wenn du den WHERE-select separat ausfürst und das Ergebnis im UPDATE-select als '".$result['field']."' einfügst.
Das gibt dir auch gelegenheit, das Ergebnis des WHERE-selects mit php zu prüfen, bevor du den UPDATE ausführst.
Zumindest würde ich das so machen.
Du musst dir keine Sorgen machen, das zwischen dem WHERE-select und dem UPDATE irgend etwas "fremdes" in der Datenbank passiert, vorrausgesetzt du machst keinen mysql_close().
__________________
Das schwerste ist das Einfachste:

www.rentstock.de

Mit Zitat antworten
  #3  
Alt 09.06.2008, 08:49:52
paulbrause paulbrause ist offline
Anfänger
 
Registriert seit: Jun 2008
Alter: 47
Beiträge: 3
AW: Mehrere Tabellen gleichzeitig updaten

Hallo,

ja, wenn es wirklich nicht anders geht, kann ich das ja nur mit einem separaten SELECT lösen... aber ich würde schon gerne wissen, OB und, wenn ja, WIE das auch mit nur einer Datenbankabfrage lösbar ist... ;)

Trotzdem danke,
paulbrause
Mit Zitat antworten
  #4  
Alt 11.06.2008, 22:48:36
paulbrause paulbrause ist offline
Anfänger
 
Registriert seit: Jun 2008
Alter: 47
Beiträge: 3
AW: Mehrere Tabellen gleichzeitig updaten

Hmmm, schade... scheint wirklich nicht so einfach umzusetzen zu sein...

Naja, dann werd ich's halt mit "Zwischenschritt" machen.

Danke trotzdem,
paulbrause
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2 Tabellen vermischen thorben MySQLi/PDO/(MySQL) 9 09.10.2007 23:06:24
2 Tabellen gleichzeitig auslesen und richtig wiedergeben blackmolle MySQLi/PDO/(MySQL) 1 29.06.2007 12:24:12
Aus 2 Tabellen gleichzeitig auslesen, nur wie? Zippo1979 PHP Grundlagen 3 04.04.2007 11:45:12
2 Tabellen zusammenfassen. Problem! basti123456 MySQLi/PDO/(MySQL) 4 03.02.2006 08:01:08
Tabellen innerhalb von Zelle andreaskf HTML, CSS und JavaScript Help! 5 29.04.2005 17:20:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:57:22 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt