# Wenn eintrag "nicht" vorhanden, neu eintragen! Sonst update



## Sebigf (9. Juni 2005)

Hallo zusammen!

Habe folgendes vor...

Es ist im Script möglich bestimmt Dinge in eine Art Warenkorb zu verlegen.
Dabei spielt natürlích auch die Menge eine wichtige Rolle.

Ich würde es gerne so machen, das wenn "kein eintrag" vorhanden mit UPDATE der wert hochgesetzt wird. Sonst halt neuer Entry.

Jetzt geht es mir darum, wie ich es "elegant" anstellen kann und direkt vor jeglicher abfrage, zu prüfen ob es bereits einen eintrag gibt.

Danke

PS: Möchte es in PHP einbinden, falls es von Wert für evtl. antworten sein sollte.


----------



## XChris (10. Juni 2005)

Ich denke das Du eher im PHP Forum fragen solltest. Außerdem denke ich, dass Du versuchen solltest, erst was zu entwickeln und dann konkrete Fragen zu stellen. Hört sich an sich trivial an und zudem auch sehr allgemein ....

Chris


----------



## Sebigf (10. Juni 2005)

@XChris:

Wieso im PHP Forum? Es geht doch ganz klar um eine SQL Abfrage und hat nichts mit PHP zu tun, außer die ausgabe der Daten.

Und klar ist es allgemein, was soll es sonst sein?

Habe das Script soweit auch fertig, nur wollte halt nur wissen wie ich am besten die existenz eines DB-eintrages prüfen kann. mehr nicht


----------



## Gumbo (10. Juni 2005)

Es stimmt schon, dass es sich um eine SQL-spezifisches Thema handelt, allerdings besitzt SQL keine Kontrollstrukturen, die für diese Thematik erforderlich sind.


----------



## Sebigf (10. Juni 2005)

Ok,

also soll ich einfach ein SELECT starten mit WHERE klausel? und wenn das true ist dann ein UPDATE ausführen?

Ich finde das ziemlich "unsauber, aber wenns geht.."


----------



## hpvw (10. Juni 2005)

Folgendes sollte funktionieren, ist aber ungetestet:

```
//DBVerbindung etc.
if (mysql_query("UPDATE WarenInBestellung "
        ."SET anzahl=anzahl+1 "
        ."WHERE bestellungID=".$bestellungID." "
            ."AND wareID=".$wareID))
    if (mysql_affected_rows()==0) {
        mysql_query("INSERT INTO WarenInBestellung "
            ."SET anzahl=1, "
            ."bestellungID=".$bestellungID.", "
            ."wareID=".$wareID);
    }
} else {
    echo "Datenbankfehler beim UPDATE: ".mysql_error();
}
```

Edit: Habe den Tabellennamen noch mal geändert und die DB-Struktur angehängt, in der ich mir das vorstelle. Der Primärschlüssel ist blau hervorgehoben.


----------

