PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

01-02-2022, 11:42
|
P_H_Peter
Registrierter Benutzer
|
|
Registriert seit: Jan 2022
Beiträge: 8
|
|
Datensatz klonen (Fehlerbehandlung)
Guten Tag
Das Klonen über ein "Affenformular" funktioniert bestens, wenn (aufgrund von if-Abfragen) keine Fehlermeldung ausgegeben wird und der neue geklonte Datensatz im ersten Durchgang gespeichert wird.
Aber erfolgt ein zweiter oder mehrere Durchgänge wegen Fehlern, die korrigiert werden müssen, erhalte ich den geklonten Datensatz gemäss dem ersten Durchgang, die Korrekturen in den späteren Durchgängen werden leider wieder auf den ursprünglichen Datensatz gespeichert/geupdatet.
Nachfolgend der Code, mit der Bitte, was muss ich ändern? Habe auch mit "lastInsertId" probiert, aber leider ohne Erfolg.
PHP-Code:
if ($schleife == 1) {
// Neuer Datensatz, mit neuer id (id-Angabe bei execute mit NULL)
$stmt = $pdo->prepare('INSERT INTO accounts (id, title, vorname, nachname, str, snr, plz, ort, email, phone1) VALUES (?,?,?,?,?,?,?,?,?,?)');
$stmt->execute([NULL, $title, $vorname, $nachname, $str, $snr, $plz, $ort, $email, $phone1]);
}
if ($schleife > 1) {
// Update vom neuen Datensatz
$stmt = $pdo->prepare('UPDATE accounts SET id = ?, title = ?, vorname = ?, nachname = ?, str = ?, snr = ?, plz = ?, ort = ?, email = ?, phone1 = ? WHERE id = ?');
$stmt->execute([$id, $title, $vorname, $nachname, $str, $snr, $plz, $ort, $email, $phone1, $_GET['id']]);
}
// Datensatz abrufen (Ursprünglichen oder mutierten / Schleife 1 oder > 1)
// Wie kann ich beeinflussen, dass im 1. Durchgang das Original aufgerufen wird, in den weiteren Durchgängen der geklonte Datensatz?
$stmt = $pdo->prepare('SELECT id, title, vorname, nachname, str, snr, plz, ort, email, phone1 FROM accounts WHERE id = ?');
$stmt->execute([$_GET['id']]);
$account = $stmt->fetch(PDO::FETCH_ASSOC);
Geändert von P_H_Peter (01-02-2022 um 11:47 Uhr)
|

05-02-2022, 10:31
|
P_H_Peter
Registrierter Benutzer
|
|
Registriert seit: Jan 2022
Beiträge: 8
|
|
Weil mir niemand geantwortet hat, versuche ich die Frage einzugrenzen / vereinfachen (habe in der Literatur nichts derartiges gefunden).
Wenn ich einen Datensatz update, wird dieser wie folgt aus der DB geholt:
PHP-Code:
$stmt = $pdo->prepare('SELECT id, title, vorname, nachname, str, snr, plz, ort, email, phone1 FROM accounts WHERE id = ?'); $stmt->execute([$_GET['id']]); $account = $stmt->fetch(PDO::FETCH_ASSOC);
Mein Problem: Wenn ich den Datensatz klonen will und wegen einer Fehlermeldung (Feld falsch oder nicht ausgefüllt) ein zweiter oder weitere Durchgänge nötig sind, wird mir mit dem gleichen Code immer der ursprüngliche Datensatz geladen, statt der bereits mutierte, aber noch fehlerhafte neu angelegte Datensatz.
Was muss ich tun, damit ab dem zweiten Durchgang der neu geklonte Datensatz, statt der ursprüngliche aufgerufen wird?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|