Hi Tom,
Datensätze heißen $_record, Solange Sie noch nicht in $_file drinnen sind.
Ja, genau. $_file ist das entpackte Pendant zum File, $_record ist nur ein Datensatz innerhalb von $_file['data']
Oder auch ein Datensatz innerhalb von $_recdata, wie in deiner Update Funktion.
Wenn der Satz mit flat_update() in ein File eingetragen wird, in dem er noch nicht enthalten war (also quasi ein Insert oder Re-Insert bzw. eben Übertragung von A nach B), dann behält er den mitgebrachten Meinestamp, es sei denn er bringt keinen mit, dann bekommt er den aktuellen. ['created'] ist unantastbar ;-))
Ähm, du willst also praktisch die Funktion flat_rec_update() nutzen, um die Datensätze zu archivieren? Das finde ich nicht so gut. IMHO sollte flat_rec_update() nur dazu da sein, Datensätze innerhalb einer Datei aktuell.dat zu erneuern.
Mittels flat_rec_insert() kann man einen oder mehrere Datensätze in aktuell.dat schreiben. Ich dachte eigentlich auch nicht daran, dies für die Archivierung zu nehmen.
Ich dachte, die Funktion flat_rec_copy() für die Archivierung vorzusehen. Diese soll aufgerufen werden flat_rec_copy($datansätze,$alterfile,$neuerfile), und daraufhin die Datensätze vom alten File in den neuen File kopieren und anschließen im alten File löschen.
Achtung: Die Datensätze kriegen in einer Archivsdatei wieder eine neue ID! Sie kriegen dort eben die dortige nächste höhere ID, egal, wie die alte war.
Hinweis:
--------
Wir haben eine Datei aktuell.dat, welche immer höhere ID's vergibt. Wenn die alten Datensätze archiviert werden, so sind die ersten ID's unvergeben, werden aber nicht wieder neu vergeben.
Zweifellos werden so die ID's mit der Zeit immer höher! Vielleicht ist man irgendwann so dann in der Datei aktuell.dat bei der Zahl 120000 oder so ;-)
Gibt es da vielleicht eine PHP Funktion, die zuerst die Datensätze in $_file['data'] zählt und anschließend die Datensätze wieder zusammenrückt, also wenn vorher vielleicht 20 das niedrigste war, danach 22, so werden die 1 und 2? Anschließen wird die lastid gleich den Anzahl der Datensätzen gesetzt.
Ein Datensatz, der von aktuell.dat -> archiv.dat geschoben wird, wird in keinster Weise geändert. Ein Datensatz kann _nicht_ von einer Archivs Datei wieder nach aktuell.dat gelangen!
Doch, bei der Datenrücksicherung! Und da darf ja der LastUpdate auch nicht geändert werden. Das war der passende Hinweis. Danke.
Datenrücksicherung? Wie stellst du dir das vor, was soll da passieren? Also ich muss ehrlich sagen, dass wird zu kompliziert, wer braucht das? Wenn die Daten im Archiv sind, sind sie da und können nicht mehr zurück. Man kann sie ja im Archiv immer noch löschen!
Lass von dieser "Datenrücksicherung" erst mal ab. Wenn _alles_ andere fertig ist, kann man noch mal darüber sprechen.
Ich möchte dich und auch mich *g* erinnern, dass wir die Funktionen flat_rec_insert() und flat_rec_select() genannt haben.
Oh ja, also auch das noch korrigieren.
In dem Script, welches ich dir gerade zugeschickt habe, dürfte das schon korrigiert sein.
MfG, Dennis.
Signatur 2 von 3:
Die EU und die neuen Mitgliedslnder:
http://www.riehle-web.com/pkprojekt/
Oder doch mehr in HTML interessiert?
http://tutorial.riehle-web.com