Hallo zusammen,
bei folgendem Code werden Kundendaten in die Datenbank gespeichert. Das klappt auch einwandfrei. Die Spalte id_vn ist Auto_Increment und die Spalte id_betreuer ist der Primärschlüssel.
$insert="INSERT INTO persdaten
(id_vn, id_betreuer, name, vorname, gebdatum, familienstand, beruf, telprivat, telmobil, email, telgesch, arbeitgeber, sozversnr)
VALUES (
NULL,
‚$uid‘,
‚{$_POST[‚nachname_kunde‘]}‘,
‚{$_POST[‚vorname_kunde‘]}‘,
‚{$_POST[‚gebdatum_kunde‘]}‘,
‚{$_POST[‚familienstand_kunde‘]}‘,
‚{$_POST[‚beruf_kunde‘]}‘,
‚{$_POST[‚telpriv_kunde‘]}‘,
‚{$_POST[‚telmobil_kunde‘]}‘,
‚{$_POST[‚email_kunde‘]}‘,
‚{$_POST[‚telgesch_kunde‘]}‘,
‚{$_POST[‚arbeitgeber_kunde‘]}‘,
‚{$_POST[‚sozversnr_kunde‘]}‘)
if ($_POST[„speichern“])
{
#Eingegebene Daten in die DB einspeißen bzw. aktualisieren
$mysqli->query($insert);
#Auto_Increment Wert in Variable speichern, um letzten Datensatz ermitteln zu können
$last_id=$mysqli->insert_id;
#Letzten Datensatz aufrufen
$vn_satz=$mysqli->query(„SELECT * FROM persdaten WHERE id_betreuer = ‚$uid‘ AND id_vn=’$last_id’;“);
$vn_feld=$vn_satz->fetch_array();
}
Nachdem Feldvariable $vn_feld die Kundendaten gespeichert hat, werden diese in Textfelder ausgegeben. Derzeit wird jegliche Änderung in den Textfeldern als neuer Datensatz gespeichert. Ich benötige eine Updatefunktion. Wie muss ich das programmieren?
Ich hatte da schon an ON DUPLICATE KEY UPDATE gedacht. Sieht dann so aus. Klappt aber nicht.
$insert="INSERT INTO persdaten
(id_vn, id_betreuer, name, vorname, gebdatum, familienstand, beruf, telprivat, telmobil, email, telgesch, arbeitgeber, sozversnr)
VALUES (
NULL,
‚$uid‘,
‚{$_POST[‚nachname_kunde‘]}‘,
‚{$_POST[‚vorname_kunde‘]}‘,
‚{$_POST[‚gebdatum_kunde‘]}‘,
‚{$_POST[‚familienstand_kunde‘]}‘,
‚{$_POST[‚beruf_kunde‘]}‘,
‚{$_POST[‚telpriv_kunde‘]}‘,
‚{$_POST[‚telmobil_kunde‘]}‘,
‚{$_POST[‚email_kunde‘]}‘,
‚{$_POST[‚telgesch_kunde‘]}‘,
‚{$_POST[‚arbeitgeber_kunde‘]}‘,
‚{$_POST[‚sozversnr_kunde‘]}‘)
ON DUPLICATE KEY UPDATE id_vn=LAST_INSERT_ID(id_vn),
name=’{$_POST[‚nachname_kunde‘]}’,
vorname=’{$_POST[‚vorname_kunde‘]}’,
gebdatum=’{$_POST[‚gebdatum_kunde‘]}’,
familienstand=’{$_POST[‚familienstand_kunde‘]}’,
beruf=’{$_POST[‚beruf_kunde‘]}’,
telprivat=’{$_POST[‚telpriv_kunde‘]}’,
telmobil=’{$_POST[‚telmobil_kunde‘]}’,
email=’{$_POST[‚email_kunde‘]}’,
telgesch=’{$_POST[‚telgesch_kunde‘]}’,
arbeitgeber=’{$_POST[‚arbeitgeber_kunde‘]}’,
sozversnr=’{$_POST[‚sozversnr_kunde‘]}’";
Es wird dennoch ein neuer Datensatz angelegt.
Gruß