Der Martin: PHP SQL, Änderungen nach UPDATE Befehl visualisieren

Beitrag lesen

Hallo,

Trotz allem hin und her, und überlegen, und lesen, und versuchen klug zu sein, ich habs nicht geschnallt.
Eines der Arrays war mir zu viel. Ich komme da einfach nicht dahinter.

wenn du genauer beschreiben könntest, wo es mit deinem Verständnis klemmt, könnte man vielleicht auch gezielt erklären, was dahintersteckt. Oft ist es einfacher, als es auf den ersten Blick aussieht.

Ich erstelle beim klick auf "speichern" einfach 2 statements zu erst einen SELECT um die aktuellen Daten der verwendeten UserID zu bekommen, und anschließend das Update.

Nach erfolgtem Update wird eine mail.php aufgerufen. In dieser steht ein 2. SELECT, um die neuen Daten der verwendeten UserID zu bekommen.

Okay, das geht natürlich auch. Also alten Stand lesen, aktualisieren, dann den neuen Stand lesen. Das geht bei dir gefahrlos, weil die Datensätze - so habe ich es jedenfalls verstanden - Nutzer-bezogen sind. Wären es jedoch x-beliebige Datensätze, müsste man hier überlegen, was schlimmstenfalls passieren könnte, wenn zwei Zugriffe fast zeitgleich erfolgen und die Datenbank-Queries zeitlich verzahnt auftreten. Könnte das zu inkonsistenten Daten führen?

Manchmal, da wirst'e irre mit dem ganzen Zeug 😁

Niemand hat gesagt, das wäre alles trivial! 😉

Eine Sache ist aber etwas nervig. Die Verarbeitung des phpmailers dauert ganz schön.

Da wäre jetzt interessant, was der eigentlich alles tut. Ruft er am Ende nur die PHP-Funktion mail() auf? Das sollte dann zwar sehr schnell gehen, aber du hast dann auch keine Aussage darüber, ob der Versand wirkllich geklappt hat. Der Rückgabewert von mail() ist nur gleichbedeutend mit "Ich habe den Brief in den gelben Kasten eingeworfen". Oder Oder verhandelt dein phpmailer gleich mit dem zuständigen Mailserver? Das kann dann tatsächlich mal ein paar Sekunden dauern.

So lange bleibt das Formular noch im Browser stehen, bevor es dann neu geladen wird. Kann ich die mail.php auch irgendwie im Hintergrund "requiren" ?

Nein. Aber du könntest mit Javascript beim Absenden des Formulars einen Hinweis einblenden, sowas wie "Ihre Nachricht wird übermittelt, bitte haben Sie einen Moment Geduld". Und gleichzeitig den Absende-Button auf disabled setzen, damit Ungeduldige nicht gleich ein zweites Mal draufklicken.

Live long and pros healthy,
 Martin

--
Paradox: Wieso heißen die Dinger Kühlkörper, obwohl sie höllisch heiß werden?