Datensatz klonen (Fehlerbehandlung)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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); 
    Zuletzt geändert von P_H_Peter; 01.02.2022, 10:47.

  • #2
    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?

    Kommentar

    Lädt...
    X