phpbar.de logo

Mailinglisten-Archive

[php] Vergleich von Datenbankeintraegen

[php] Vergleich von Datenbankeintraegen

Martin Franz martin_(at)_franz63.de
Sun, 28 Jan 2001 01:07:17 +0100


Hallo,

> Beispiel
>
> id      anzahl  nr    merkmal1     merkmal2    status
>
> 1         7     555      rot         klein      an
> 2         1     333      blau        klein      an
> 3         3     555      rot         klein      aus
>
> Problem:
>
> Wenn durch update der status geaendert wird, muss ueberprueft werden, ob
> es
> bereits einen Eintrag mit identischen Merkmalen ( nr, merkmal1, merkmal2
> ) gibt.
>
> Wenn NEIN, nur update des status, wenn JA, anzahl des ersten Eintrags um
> anzahl
>  des 2. Eintrags erhoehen und 2. Eintrag loeschen.
> Alle Routinen haben bisher nur bewirkt, dass der 2. Eintrag geloescht
> wurde,
> die anzahl wurde nicht veraendert.

Wie sahen denn diese Routinen aus?
Um welche Datenbank handelt es sich überhaupt?! Mysql?
Kann man es nicht von vornherein verhindern dass "identische" Datensätze
existieren?
Falls nicht, könnte ich mir da sowas vorstellen:

"Select anzahl, id from tabelle where where nr="555" and merkmal1="rot" and
merkmal2="klein";
wenn mehr als eine Zeile ausgegeben wird, anzahl aufsummieren, und über die
id den ersten Datensatz updaten (anzahl und status), dann die andere id
löschen.

Sollte diese Tabelle von mehreren Prozessen gleichzeitig gelesen/geschrieben
werden musst Du aufpassen dass es kein Chaos gibt, wenn 2 Prozesse
"gleichzeitig" rumpfuschen. (wirklich gleichzeitig geht ja nicht, aber es
kann z.b. einer gerade selecten, dann ein anderer löschen und dann will der
erste wieder updaten -> chaos)
so long,

martin



php::bar PHP Wiki   -   Listenarchive