phpbar.de logo

Mailinglisten-Archive

[php] ROLLBACK bei Oracle ueber mehrere Formularseiten hinweg ?

[php] ROLLBACK bei Oracle ueber mehrere Formularseiten hinweg ?

Peaveway_(at)_aol.com Peaveway_(at)_aol.com
Thu, 4 Jan 2001 21:14:59 EST


Moin,

In einer eMail vom 05.01.01 01:55:32 (MEZ) Mitteleuropäische Zeit schreibt 
mfischer_(at)_josefine.ben.tuwien.ac.at:

>   Wenn ich mittels Session Daten eines Formulars von der
>  ersten Seite in die DB schreibe und zusaetzlich noch weitere
>  Formularseiten auszuwerten habe, welche Moeglichkeit hab ich,
>  wenn ich z.B. auf der letzten Seite bin und der Benutzer
>  abbrechen will, alle vorhergehenden INSERTs wieder Rueckgaengig
>  zu machen. Einmal abgesehen davon, das ich alle Variablen an die
>  Session binden kann und zum schluss auf einen Schlag ueberpruefe
>  und in die DB schreibe, reicht es aus jeweils in der Session
>  immer das connection und statement handle mitzureichen und
>  mittels dessein einfach die weiteren INSERTs zu machen ?

Hm als mit Rollbacks hat das ersteinmal nichts zutun. Es ist egal ob ein- 
oder mehrstufig. Sobald das erste Formular vom Anwender abgeschickt wird muss 
du die Angaben ueberpruefen und nicht erst 3 Formulare später. Dies geschiet 
am geschicktesten in dem sich das Formular immer selber aufruft (Auch wenn es 
aus mehreren besteht.) Sollte der Anwender fehleingaben gemachte haben muss 
du ihm gleich abverlangen das er diese korregiert. Es ist hier dann auch vom 
Vorteil das du dein HTML Formular wiederverwenden kannst und auch gleich 
seine bislang eingebenen Werte aus dem HTTP_Post_Vars[] nehmen und eintragen 
kannst.

Erst wenn er ein Teilformular richtig ausgefuellt hat gehst du bei un 
speicherst die Werte in der Session ab. Es empfielt sich hier alle Werte in 
einem Array zuspeichern und dieses in der Session abzulegen.

Gleichzeitig musst du ein Token setzten damit deine Formularseite weiss im 
welchem Abschnitt es sich nun befindet. Erst ganze am Ende liest du das Array 
aus und erzeugst daraus deine Query und fuellst die Datenbank. Anschliessend 
ist das Token zuloeschen damit sich dein Formular im Ausgangszustand 
praaesentieren kann oder aber du verwendest das Token als Reloadsperre.

Gruss
Joerg Behrens

ps: Im PHP Manual sind ein paar Beispiele zu Oracle drin un ein paar weitere 
Infos findest du in der FAQ der NG unter
15. Datenbanken: Oracle -
http://www.koehntopp.de/php/faq-15.html

Mit dem Abstraktionslayer der phplib kommt man auch ganz gut zurande 
besonders wenn man nur sekundär an Oracle ran muss. 

--
TakeNet GmbH                        Mobil: 0171/60 57 963       
D-97080 Wuerzburg                   Tel: +49 931 903-2243       
Alfred-Nobel-Straße 20              Fax:+49 931 903-3025


php::bar PHP Wiki   -   Listenarchive