Hallo!
Ohne mich würde des PHP-Forum glaub ich aussterben 
Neues Problem:
Ich möchte mit timestamp herausfinden, wann ein Benutzer etwas an seinen Daten verändert hat.
Das Problem ist aber, dass die Daten auf mehrere Tabellen verteilt sind!
Weiss einer eine elegante Lösung, dass ich mein Datum aktualisiere, ohne in jede einzelne Tabelle einen Timestamp zu machen, wo ich dann immer erstmal das neueste herausfinden muss, um es anzugeben ??
Hoffe jemand weiss was kluges 
MfG
Geisterkarle
Hallo Timo,
Neues Problem:
Ich möchte mit timestamp herausfinden, wann ein Benutzer etwas
an seinen Daten verändert hat.
Das Problem ist aber, dass die Daten auf mehrere Tabellen
verteilt sind!
Weiss einer eine elegante Lösung, dass ich mein Datum
aktualisiere, ohne in jede einzelne Tabelle einen Timestamp zu
machen, wo ich dann immer erstmal das neueste herausfinden
muss, um es anzugeben ??
Wenn Du die Benutzerdaten über mehrere Tabellen verteilt in Deiner DB abgespeichert hast, hast Du sicherlich diese Daten untereinander z… ücer die ID verknüpft. Dadurch sollte es Dir relativ leicht möglich sein, die jeweils aktuellste Änderung herauszubekommen. Natürlich muß jeder Datensatz einen Timestamp bekommen. Mir stellt sich an dieser Stele die Frage, was Du denn mit diesem Timestamp anfangen willst. Wenn es lediglaich dazu dienen soll, das Datum der letzten Änderung mit zu speichern, ist es doch kein großes Problem. Bei jedem UPDATE oder INSERT wird einfach mit NOW() der aktuelle Timestamp gesetzt. Ändert ein Benutzer nur einen bestimmten Teil seiner Daten, bekommt auch nur dieser Teil einen neuen Timestamp, die anderen bleiben unberührt.
Über eine entsprechende Abfrage aller Timestamps in den verschiedenen Tabellen und einen anschließenden Vergleich selbiger kannst Du doch dann ganz leicht rausfiltern, wann die wirklich letzte Änderung stattgefunden hat.
Beschreib doch einfach mal genauer, was Du erreichen möchtest, dann kann man Dir vielleicht auch qualifizierter helfen…
Bis denn dann,
Felix
Hallo!
Ich will ja gerade versuchen zu vermeiden, alle Tabellen mit timestamp auszurüsten.
Am besten wäre es, wenn man irgendwie die aktuelle Zeit ausliest, und dann einträgt. Kann man die Zeit in timestamp-form ausgeben? oder muss ich dann auf date umsteigen?
und wie würde eine ausgabe der aktuellen Zeit aussehen, dass ich sie in die Tabelle einschreiben kann (tt.mm.jjjj o.ä.)
MfG
Timo
Hallo Timo,
Wenn Du die Benutzerdaten über mehrere Tabellen verteilt in
Deiner DB abgespeichert hast, hast Du sicherlich diese Daten
untereinander z… ücer die ID verknüpft. Dadurch sollte es Dir
relativ leicht möglich sein, die jeweils aktuellste Änderung
herauszubekommen. Natürlich muß jeder Datensatz einen
Timestamp bekommen. Mir stellt sich an dieser Stele die Frage,
was Du denn mit diesem Timestamp anfangen willst. Wenn es
lediglaich dazu dienen soll, das Datum der letzten Änderung
mit zu speichern, ist es doch kein großes Problem. Bei jedem
UPDATE oder INSERT wird einfach mit NOW() der aktuelle
Timestamp gesetzt. Ändert ein Benutzer nur einen bestimmten
Teil seiner Daten, bekommt auch nur dieser Teil einen neuen
Timestamp, die anderen bleiben unberührt.
Über eine entsprechende Abfrage aller Timestamps in den
verschiedenen Tabellen und einen anschließenden Vergleich
selbiger kannst Du doch dann ganz leicht rausfiltern, wann die
wirklich letzte Änderung stattgefunden hat.
Beschreib doch einfach mal genauer, was Du erreichen möchtest,
dann kann man Dir vielleicht auch qualifizierter helfen…
Bis denn dann,
Felix
Hi Timo,
Ich will ja gerade versuchen zu vermeiden, alle Tabellen mit
timestamp auszurüsten.
Am besten wäre es, wenn man irgendwie die aktuelle Zeit
ausliest, und dann einträgt. Kann man die Zeit in
timestamp-form ausgeben? oder muss ich dann auf date
umsteigen?
Das verstehe ich jetzt wirklich nicht mehr. Zum einen ist es für (ich nehme mal einfach so an, Du setzt MySQL ein) eine Datenbank kaum ein wirkliches Problem, eine oder zwei zusätzliche Spalten in einer Tabelle zu verkraften. Zum anderen willst Du doch gerade diese Informationen auch abspeichern, nämlich wann ein bestimmter Teil der Benutzerdaten geändert wurde. Da Du schon die Daten in verknüpfte Tabellen aufgelöst hast, kannst Du doch jeweils eine Spalte Letzte Aktualisierung einfügen, der Du den Typ DATETIME zuweist. Bei jedem UPDATE oder INSERT wird diese Spalte auf den Wert NOW() gesetzt. Dann trägt MySQL selbstständig die aktuelle Zeit und das aktuelle Datum in der Form YYYY-MM-DD HH:MM:SS ein. Ganz einfach eigentlich.
Noch einmal: was genau willst Du mit dem Abspeichern des Timestamps erreichen ? Willst Du nur für Dich in der DB vermerken, wann wer was geändert hat, oder willst Du diese Informationen noch irgendwie weiter aufbereiten ?
Bis denn dann,
Felix
Hi!
Ich möchte auf einer Seite noch ausgeben:
Letzte Änderung: $datum (so oder so ähnlich)
Wenn ich jetzt in jeder Tabelle eine Zeit habe, die sich ja dann unterscheiden, je nachdem wann dort etwas geändert wurde, müsste ich erst herausfinden, was das neueste Datum ist.
Wie ich das mache weiss ich gar net…
Was ich im Sinn habe ist:
Ich habe eine Seite, wo die ganzen Eingaben in die Datenbank eingegeben werden. Falls alles korrekt verlaufen ist, möchte ich automatisch das aktuelle Datum eintragen, damit ich nur auf eine Tabelle mit Datum angewiesen bin. Ich weiss allerdings nicht wie ich das aktuelle Datum auslese 
Das weicht jetzt natürlich von meiner Grundfrage ab, aber ich glaub, des is die einfachste Möglichkeit!
MfG
Timo
Hi Timo,
Das verstehe ich jetzt wirklich nicht mehr. Zum einen ist es
für (ich nehme mal einfach so an, Du setzt MySQL ein) eine
Datenbank kaum ein wirkliches Problem, eine oder zwei
zusätzliche Spalten in einer Tabelle zu verkraften. Zum
anderen willst Du doch gerade diese Informationen auch
abspeichern, nämlich wann ein bestimmter Teil der
Benutzerdaten geändert wurde. Da Du schon die Daten in
verknüpfte Tabellen aufgelöst hast, kannst Du doch jeweils
eine Spalte Letzte Aktualisierung einfügen, der Du den Typ
DATETIME zuweist. Bei jedem UPDATE oder INSERT wird diese
Spalte auf den Wert NOW() gesetzt. Dann trägt MySQL
selbstständig die aktuelle Zeit und das aktuelle Datum in der
Form YYYY-MM-DD HH:MM:SS ein. Ganz einfach eigentlich.
Noch einmal: was genau willst Du mit dem Abspeichern des
Timestamps erreichen ? Willst Du nur für Dich in der DB
vermerken, wann wer was geändert hat, oder willst Du diese
Informationen noch irgendwie weiter aufbereiten ?
Bis denn dann,
Felix