Seite 1 von 1

Addieren in php

Verfasst: So 26.Aug, 2007 16:44
von Ergonomic
Hallo

Ich habe mal eine Frage.

Ich habe mir eine Tabelle erstellt mit 36 eingabefeldern. und eine Tabelle mit 36 ausgabefeldern.

Derzeit ist es so das wenn ich etwas eintrage mein Datenbankeintrag überschrieben wird.
Allerdings möchte ich es so haben, das die Gepostete Zahl mit dem Datenbankeintrag addiert wird.

Ich möchte den Code nicht unbedingt hier anhäge da es sich um ein Projekt von mir handelt. und ich es eventuell dann als MOD rausbringen möchte.

Ich kann die Dateien gern per PN zusenden. Dann weiß0 ich wer die Dateien erhalten hat.
Ich hoffe ihr versteht mich.

Gruss Ergonomic

Verfasst: So 26.Aug, 2007 18:32
von oxpus
Um zu addieren, kannst Du ein Update in der Datenbank so gestalten:

Code: Alles auswählen

UPDATE tabelle SET feld1 = feld1 + wert1 WHERE bedingungen;
In Code für das phpBB gegossen dann so:

Code: Alles auswählen

$sql = "UPDATE tabelle SET feld1 = feld1 + $wert1 WHERE bedingungen;
Wenn Du alle 36 Felder auf einmal so aktualisieren willst, dann hänge die weiteren Felder einfach mit Kommata getrennt hintereinander.
Ich mache das für 3 Felder mal vor:

Code: Alles auswählen

$sql = "UPDATE tabelle SET feld1 = feld1 + $wert1, feld2 = feld2 + $wert2, feld3 = feld3 + $wert3 WHERE bedingungen;
Ich hoffe, das hilft Dir weiter...

Verfasst: So 26.Aug, 2007 23:29
von oxpus
PN angekommen :( ;)

Noch einfacher gehts wohl in Deinem Script kaum:
Ersetze

Code: Alles auswählen

				nz_value = '" . str_replace("\'", "''", $new[$nz_name]) . "'
durch

Code: Alles auswählen

				nz_value = nz_value + '" . str_replace("\'", "''", $new[$nz_name]) . "'
Dann wird nicht mehr ersetzt, sondern hinzugezählt...

Verfasst: Mo 27.Aug, 2007 03:25
von Ergonomic
Vielen Dank Karsten

Klappt einwandfrei.
Ich hab das immer anders versucht.
Weil ich der Meinung war das str_replace muss immer weg. Weil es ja bedeutet das ich etwas überschreibe bzw ersetze.

Vielen vielen Dank.

Gruss Ergonomic

Verfasst: Mo 27.Aug, 2007 09:35
von oxpus
Nun ja, Du hast Recht, da es Zahlen sind, muss es so lauten:

Code: Alles auswählen

nz_value = nz_value + '" . (int) $new[$nz_name] . "'