Hallo zusammen,
ich habe zwei miteinander verknüpfte Tabellen. In der einen werden Kundendaten gespeichert in der anderen die Arbeitgeberdaten des Kunden.
Sobald die Daten für den Kunden und den Arbeitgeber eingetragen sind und der Anwender auf „Speichern“ drückt, prüft das Programm ob der Kunde schon eingetragen war oder nicht und führt entweder einen UPDATE oder einen INSERT-Befehl aus.
Bei den Arbeitgeberdaten wird ein INSERT mit ON DUPLICATE KEY UPDATE durchgeführt, der in einer Variablen vorbereitet ist.
$insertarbeitgeber="INSERT INTO arbeitgeber
(id\_ag, id\_vn, agname, agstrasse, agplz, agort, agtel)
VALUES(
NULL,
'{$\_SESSION['kundenauswahl']}',
'{$mysqli-\>real\_escape\_string($\_POST['agname'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agstrasse'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agplz'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agort'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agtel'])}')
ON DUPLICATE KEY UPDATE
agname = '{$mysqli-\>real\_escape\_string($\_POST['agname'])}',
agstrasse = '{$mysqli-\>real\_escape\_string($\_POST['agstrasse'])}',
agplz = '{$mysqli-\>real\_escape\_string($\_POST['agplz'])}',
agort = '{$mysqli-\>real\_escape\_string($\_POST['agort'])}',
agtel = '{$mysqli-\>real\_escape\_string($\_POST['agtel'])}'";
Die Spalte id_vn ist als UNIQUE definiert.
Damit der Primärschlüssel in der Kundentabelle als Fremschlüssel in der Arbeitgebertabelle verwendet werden kann, wird der Schlüssel in einer $_SESSION Variable gespeichert mit
$\_SESSION['kundenauswahl']=$mysqli-\>insert\_id;
Diese taucht auch oben im INSERT Befehl auf.
Nun wollte ich das ganze folgendermaßen kombinieren.
if ($\_POST['speichern'])
{
...
...
$\_SESSION['kundenauswahl']=$mysqli-\>insert\_id;
$mysqli-\>query($insertarbeitgeber);
}
Das Problem ist aber, dass die $_SESSION Variable im Query immer den Wert 0 bekommt und nicht den tatsächlichen. Ist das so, dass die $_SESSION Variable in einem String nicht aktualisiert wird, wenn der String weiter oben schon deklariert wurde?
Gruß