Hallo an alle.
Ein Kunde von mir beglückte mich heute mit einer MySQL-Tabelle, die für ein kleines PHP-Kassenbuch von ihm als Datenspeicher herhalten muss. "Alles schon und gut, ich kann meine Einnahmen und Ausgaben in die Datenbank sichern. Aber jetzt möchte ich doch gerne, dass am Ende jeder Spalte logischerweise der kulmulierte (also Einnahmen minus Ausgaben plus den vorherigen Bestand) Bestand nach Eingabe eines Vorgangs steht", sprach der Kunde und stiefelt voller Erwartung von dannen.
Nun mein Problem: Wie setze ich das um?
Er hat sein "Kassenbuch" folgendermaßen geschrieben:
In einem Formular wählt er zuerst mittels <select>-Feld die Art des Vorgangs aus (also entweder "Einnahme" oder "Ausgabe"). Dann gibt er den Bruttobetrag ein und klickt logischerweise auf "Vorgang sichern".
Die Art des Vorgangs wird in der Spalte "vorgang" (VARCHAR 20) gesichert, der Betrag in der Spalte "betrag" (DECIMAL 9,2). Nun kann der Kunde in der HTML-Tabelle sehen, was er gerade eingegeben hat (natürlich inklusive aller schon vorhandenen Vorgänge).
Ich habe mir folgendes überlegt:
1. Einen Anfangsbestand (z.B. 0) in der Variable $argStrKulmBestand festlegen.
2. Den Datensatz auslesen und überprüfen, ob es eine Einnahme ist. Wenn ja, diesen Betrag in die Variable $argStrEinnahme sichern. Wenn nicht, die Variable $argStrEinnahme mit "0" füllen.
3. Den gleichen Datensatz überprüfen, ob es eine Ausgabe ist. Wenn ja, diesen Betrag in die Variable $argStrAusgabe sichern. Wenn nicht, die Variable $argStrAusgabe mit "0" füllen.
4. Nun folgendes errechnen lassen: $argStrKulmBestand = ($argStrEinnahme - $argStrAusgabe) + $argStrKulmBestand;
5. Den Inhalt von $argStrKulmBestand einfach ausgeben.
6. Das ganze wieder von vorne, bis der letzte Datensatz ausgelesen ist.
Wäre das ein guter Weg? Danke im Voraus für jeden guten Tipp.
Innuendo
Ein Kunde von mir beglückte mich heute mit einer MySQL-Tabelle, die für ein kleines PHP-Kassenbuch von ihm als Datenspeicher herhalten muss. "Alles schon und gut, ich kann meine Einnahmen und Ausgaben in die Datenbank sichern. Aber jetzt möchte ich doch gerne, dass am Ende jeder Spalte logischerweise der kulmulierte (also Einnahmen minus Ausgaben plus den vorherigen Bestand) Bestand nach Eingabe eines Vorgangs steht", sprach der Kunde und stiefelt voller Erwartung von dannen.
Nun mein Problem: Wie setze ich das um?
Er hat sein "Kassenbuch" folgendermaßen geschrieben:
In einem Formular wählt er zuerst mittels <select>-Feld die Art des Vorgangs aus (also entweder "Einnahme" oder "Ausgabe"). Dann gibt er den Bruttobetrag ein und klickt logischerweise auf "Vorgang sichern".
Die Art des Vorgangs wird in der Spalte "vorgang" (VARCHAR 20) gesichert, der Betrag in der Spalte "betrag" (DECIMAL 9,2). Nun kann der Kunde in der HTML-Tabelle sehen, was er gerade eingegeben hat (natürlich inklusive aller schon vorhandenen Vorgänge).
Ich habe mir folgendes überlegt:
1. Einen Anfangsbestand (z.B. 0) in der Variable $argStrKulmBestand festlegen.
2. Den Datensatz auslesen und überprüfen, ob es eine Einnahme ist. Wenn ja, diesen Betrag in die Variable $argStrEinnahme sichern. Wenn nicht, die Variable $argStrEinnahme mit "0" füllen.
3. Den gleichen Datensatz überprüfen, ob es eine Ausgabe ist. Wenn ja, diesen Betrag in die Variable $argStrAusgabe sichern. Wenn nicht, die Variable $argStrAusgabe mit "0" füllen.
4. Nun folgendes errechnen lassen: $argStrKulmBestand = ($argStrEinnahme - $argStrAusgabe) + $argStrKulmBestand;
5. Den Inhalt von $argStrKulmBestand einfach ausgeben.
6. Das ganze wieder von vorne, bis der letzte Datensatz ausgelesen ist.
Wäre das ein guter Weg? Danke im Voraus für jeden guten Tipp.
Innuendo
Kommentar