[PHP & MySQL] Überweisungen durchführen

nymphy
Huhu smile

Ich bin jetz soweit ^^

Ich habe eine mitgliederdatenbank und eine Transferdatenbank. Das eintragen klappt prima. Doch wie mache ich jetz dass die transaktionen auch wirkung zeigen? also das der jeweilige betrag ab und auf gerechnet wird?

in der mitgliederdatenbank gibt es die Zeile "geld"

und in der bank gibt es die
Transaktionsnummer, die ID wer es geschickt hat, ID vom Empfänger, einen Betrag und den Grund.
nun soll der Betrag von "geld" bei ID 1 abgezogen und bei ID 2 aufgerechnet werden.

ich brauche bestimmt noch sowas wie ein geld_neu oder so? weil ich will ja vorher und nacher auch anzeigen lassen (später dann beim abrufen wo dann grund und so steht)
nymphy
*hust*

kann mir denn niemand einen Gedanken anstoß geben ?
kext
Du brauchst gar kein neues Feld. Der Kontostand ist in den Transaktionen bereits gespeichert. Du musst ihn also nur noch auslesen.

Kontostand ohne Transaktionen:

code:
1:
SELECT `geld` FROM `mitglieder` WHERE `id` = '1337'
Plus eingegangene Überweisungen:

code:
1:
SELECT SUM(`betrag`) AS `eingang` FROM `transaktionen` WHERE `empfaenger` = '1337' GROUP BY `empfaenger`
Minus ausgegangene Überweisungen:

code:
1:
SELECT SUM(`betrag`) AS `ausgang` FROM `transaktionen` WHERE `sender` = '1337' GROUP BY `sender`
Der aktuelle Kontostand beträgt dann Geld + Eingang - Ausgang.

Statt 1337 muss da natürlich die ID vom User rein.
nymphy
ai danke smile werd gleich mal rumbasteln und einbauen ^^

edit

ich möchte das konto ja als eigene seite für jedes mitglied machen.. wie bekomm ich denn das auf jede seite ?
also es gibt ja 2 tabellen - mitglieder und bank

und bei der generellen abfrage nach einer auflistung
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php
include "connect.inc.php";
$id $_GET['id'];

  $abfrage "SELECT `geld` FROM `mitglieder` WHERE `id` = $id";
  $ergebnis mysql_query($abfrage);
  while($row mysql_fetch_assoc($ergebnis))
    {
echo  "
$row[name] - $row[rang] - $row[geld] ";
}
?>


kommt
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /users/allertal/www/welcome/kontoausgabe.php on line 7
kext
Der Fehler bedeutet, dass deine Abfrage nicht erfolgreich war. Näheres findest du mittels echo mysql_error(); heraus.

Ganz abgesehen davon können in $_GET['id'] auch völlig sinnlose oder sogar gefährliche Werte drinstehen (SQL-Injections). Solche Variablen müssen unbedingt vorher geprüft werden. Du kannst dazu mysql_real_escape_string() oder intval() benutzen.
nymphy
Der sagt mir dann das

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
kext
$id ist leer, da $_GET['id'] leer ist. Du hast dem Script keinen Wert übergeben. Wandle $id per intval() in eine Zahl um, und der Fehler wird verschwinden.

php:
1:
$id intval($_GET['id']);
Außerdem hast du die einfachen Anführungszeichen in der Query vergessen.
nymphy
Hm
ach das klappt nich wie ich mir das vorstelle unglücklich is ja auch total dumm..

Ich möchte das jeder ein Konto erhält
also mit jeder neuen Anmeldung wird eine neue Seite erstellt wo die Kontodaten drauf sind.

Bzw. das jede vorhandene Anmeldung auch so eine Seite erhält.
Nur weiß ich nicht wie :S