eky79 10 Geschrieben 21. Oktober 2011 Melden Geschrieben 21. Oktober 2011 (bearbeitet) Hallo, ich habe folgende Tabelle: + pdfid + wordid + seite + anzahl+ Hierbei sind die ersten 3 Spalten Primärschlüssel. Theoretisch möchte ich, wenn die 3 Schlüssel in dem vorgegebenen Wert existieren, ein increment der anzahl durchführen oder eben eine neue Zeile anlegen. Aber irgendwie haut das nicht hin (irgendwie legt "der" nur für jede wordid einen Eintrag an): mssql_query("IF NOT EXISTS (SELECT * FROM fwz WHERE fileid = '$pdfid' AND wordid = '$wortid' AND seite = '$y') INSERT INTO fwz VALUES ('$pdfid', '$wortid', '$y', 1) ELSE UPDATE fwz SET anzahl = anzahl + 1 WHERE fileid = '$pdfid' AND wordid = '$wortid' AND seite = '$y' "); (in MySQL funktioniert das tadellos. Da hatte ich folgenden Code verwendet: mssql_query("INSERT INTO fwz(fileid, wordid, seite, anzahl) VALUES ($pdfid, $wortid, $y, 1) ON DUPLICATE KEY UPDATE anzahl=anzahl+1"); ) Hat jemand eine Idee voran das liegen könnte? Ist der Code überhaupt soweit korrekt? Nachtrag: ich habe gerade gesehen, dass das Problem eventuell auch an einer falsch ausgelesenen ID liegen könnte. Ich lese diese mit function mssql_insert_id() { $id = false; $res = mssql_query('SELECT @@identity AS id'); if ($row = mssql_fetch_row($res)) { $id = trim($row[0]); } mssql_free_result($res); return $id; } aus. Aber funktioniert das auch mit UPDATE oder nur, wenn ein INSERT erfolgt? bearbeitet 21. Oktober 2011 von eky79
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden