Hallo,
ich benötige mal Eure Hilfe in Sachen INSERT... ON DUPLICATE KEY UPDATE...
In meiner Datenbank gibt es mehrere N zu M (N:M) Relationen und habe bereits schon eine Select-Abfrage formuliert, hinbekommen
nun möchte ich aber nach Abändern der Daten Ein Update über die gleiche Relation durchführen... aber 1 zu 1, kann ich das nicht übernehmen, wie ich das bei der SELECT-Anweisung gemacht habe.
ich mache das immer separat mit
Nun habe ich dynamisch neue Selectboxen in PHP erzeugt und würde gerne zusätzlich mit
INSERT INTO... SET... ON DUPLICATE KEY UPDATE... arbeiten und das ebend über eine M:N-Relation
und hab folgendes gebastelt, was aber leider nicht funktioniert!
Da taucht folgende Fehlermeldung auf:
Notice: Undefined variable: update in C:\xampp\htdocs\MA-Update.php on line 126
Error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS ma, anrede AS anr SET ma.Anrede_ID = ' at line 2
Ich hab kein Schimmer, wo ich nun die beiden INNER JOINS hin tun muss, damit es auch geht. Habt ihr ne Idee?
Gruß.
ich benötige mal Eure Hilfe in Sachen INSERT... ON DUPLICATE KEY UPDATE...
In meiner Datenbank gibt es mehrere N zu M (N:M) Relationen und habe bereits schon eine Select-Abfrage formuliert, hinbekommen
SQL:
...
SELECT
anr.*,
ma.Personal_ID,
ma.Vorname,
ma.Nachname,
ma.Straße,
ma.PLZ,
ma.Ort,
ma.Telefon,
ma.Handy,
ma.Email,
date_format(ma.Geburtsdatum,'%d.%m.%Y') AS Geb_formated,
kn.Kunden,
n.Laender,
n.Counter
FROM
anrede AS anr,
nationalitaet AS n,
mitarbeiter AS ma
INNER JOIN( einsatzort AS eo
INNER JOIN
Kunden AS kn
ON
eo.Kunden_ID = kn.Kunden_ID)
ON
ma.Personal_ID = eo.Personal_ID
WHERE
ma.Anrede_ID = anr.Anrede_ID
AND
ma.Nationalitaet_ID = n.Counter
AND
ma.Vorname = ".@$_POST['vn']."
AND
ma.Nachname = ".@$_POST['nn']."
...
ich mache das immer separat mit
SQL:
UPDATE
mitarbeiter AS ma, anrede AS anr
SET
ma.Anrede_ID = '".$_POST["anr"]."',
ma.Vorname = '".$_POST["vn"]."',
ma.Nachname = '".$_POST["nn"]."',
ma.Straße = '".$_POST["str"]."',
ma.PLZ = '".$_POST["plz"]."',
ma.Ort = '".$_POST["ort"]."',
ma.Telefon = '".$_POST["tel"]."',
ma.Handy = '".$_POST["mobi"]."',
ma.Email = '".$_POST["mail"]."',
ma.Geburtsdatum = str_to_date('".$_POST['geb']."','%d.%m.%Y'),
ma.Nationalitaet_ID = '".$_POST["nation"]."'
WHERE
ma.Anrede_ID = anr.Anrede_ID
AND
Vorname = ".$_POST['vn']."
AND
Nachname = ".$_POST['nn']."
SQL:
UPDATE
einsatzort
SET
Personal_ID = ".$tmpID.",
Kunden_ID = ".$_POST[$key]
Nun habe ich dynamisch neue Selectboxen in PHP erzeugt und würde gerne zusätzlich mit
INSERT INTO... SET... ON DUPLICATE KEY UPDATE... arbeiten und das ebend über eine M:N-Relation
und hab folgendes gebastelt, was aber leider nicht funktioniert!
SQL:
INSERT INTO
mitarbeiter AS ma,
anrede AS anr
SET
ma.Anrede_ID = '".$_POST["anr"]."',
ma.Vorname = '".$_POST["vn"]."',
ma.Nachname = '".$_POST["nn"]."',
ma.Straße = '".$_POST["str"]."',
ma.PLZ = '".$_POST["plz"]."',
ma.Ort = '".$_POST["ort"]."',
ma.Telefon = '".$_POST["tel"]."',
ma.Handy = '".$_POST["mobi"]."',
ma.Email = '".$_POST["mail"]."',
ma.Geburtsdatum = str_to_date('".$_POST['geb']."','%d.%m.%Y'),
ma.Nationalitaet_ID = '".$_POST["nation"]."'
FROM
INNER JOIN(einsatzort AS eo
INNER JOIN
Kunden AS kn
ON
eo.Kunden_ID = kn.Kunden_ID)
ON
ma.Personal_ID = eo.Personal_ID
WHERE
ma.Anrede_ID = anr.Anrede_ID
AND
Vorname = ".$_POST['vn']."
AND
Nachname = ".$_POST['nn']."
ON DUPLICATE KEY UPDATE
ma.Personal_ID=LAST_INSERT_ID(ma.Personal_ID)
Da taucht folgende Fehlermeldung auf:
Notice: Undefined variable: update in C:\xampp\htdocs\MA-Update.php on line 126
Error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS ma, anrede AS anr SET ma.Anrede_ID = ' at line 2
Ich hab kein Schimmer, wo ich nun die beiden INNER JOINS hin tun muss, damit es auch geht. Habt ihr ne Idee?
Gruß.