Jump to content

WHERE-Abfrage mit mehreren Statements


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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 von eky79
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...