[PHP & MySQL] Kontofunktion

Remember
Hey ihr Lieben (:
Ich arbeite gerade an einer Kontofunktion für Allertal. Es gibt 1 Tabelle die abgerufen wird, wo entweder der Name bei "zu" (der User kriegt Geld) oder bei "von" (dem User wird Geld abgezogen steht & dann gibt es noch ein Feld "betrag" wo dann eben die Menge des Geldes steht. Ich dachte, dass ich es einmal schaffen würde, aber dem scheint nicht so. Ich glaube, dass ich einen richtig easy-peasy Fehler gemacht habe (wie fast immer), der sich aber mal wieder vor meinen Augen versteckt. Wäre supi, wenn mal kurz einer drüberschauen würde smile

Code:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
<?php include("db.php"); ?>

<head>
<link href="stylemain.css" type="text/css" rel="stylesheet">
</head>
<body>
<center>
<h1>Konto</h1><br>


<?php
$start 15000;

    $abfrage="SELECT `betrag`,`zu`, SUM(`betrag`) AS `plus` FROM `bank` WHERE `zu` = '".$_SESSION["name"]."' GROUP BY `zu`";
    $ergebnis mysql_query($abfrage) or die("$abfrage<hr />" .mysql_error());
     while($row mysql_fetch_array($ergebnis)){

$plus $row[plus];
$posi $start $plus;

    $abfrage="SELECT `betrag`,`von`, FROM `bank` SUM(`betrag`) AS `minus` FROM `bank` WHERE `von` = '".$_SESSION["name"]."' GROUP BY `von`";
    $ergebnis mysql_query($abfrage) or die("$abfrage<hr />" .mysql_error());
     while($zeile mysql_fetch_array($ergebnis)){

$minus $zeile[minus];
$gesamt $posi $minus;

}} ?>

Aktueller Kontostand: <b><?php echo "$gesamt v€"?></b>



</body>
</html>


Fehlermeldung:
code:
1:
2:
3:
SELECT `betrag`,`zu` SUM(`betrag`) AS `plus` FROM `bank` WHERE `zu` = '' GROUP BY `zu`

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 'SUM(`betrag`) AS `plus` FROM `bank` WHERE `zu` = '' GROUP BY `zu`' at line 1 




LG, Josi
kext
Komma vergessen.
Remember
Was sag ich?
Ich bin einfach ein dummes Mädchen großes Grinsen
Dankeschön smile

edit/
Höhm. Ich mag Kontos nich Augenzwinkern
Es zeigt jetzt keine Fehlermeldung mehr an, aber da wo halt eigentlich das Geld stehen sollte, steht jetzt gar nichts. Nur das v€ ...
Aber eigentlich sollte er doch jetzt 15000 anzeigen, wenn sonst nix is, oder? :/
kext
Ich weiß nicht, ob das den Fehler verursacht, aber in der zweiten SQL-Abfrage ist ein »FROM `bank`« doppelt, das da nicht hingehört.

php:
1:
"SELECT `betrag`, `von`, SUM(`betrag`) AS `minus` FROM `bank` WHERE `von` = '".mysql_real_escape_string($_SESSION["name"])."' GROUP BY `von`"


So sollte es sein. Die Variable hab ich mal gesichert. Das solltest du unbedingt immer tun.
Remember
Also es sieht jetzt folgendermaßen aus:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
<?php 
include("db.php");
include("checkuser.php"); 
?>

<head>
<link href="stylemain.css" type="text/css" rel="stylesheet">
</head>
<body>
<center>
<h1>Konto</h1><br>


<?php
error_reporting(E_ALL);

$start 15000;

    $abfrage="SELECT `betrag`,`zu`, SUM(`betrag`) AS `plus` FROM `bank` WHERE `zu` = '".mysql_real_escape_string($_SESSION["name"])."' GROUP BY `zu`";
    $ergebnis mysql_query($abfrage) or die("$abfrage<hr />" .mysql_error());
     while($Data mysql_fetch_array($ergebnis)){

$plus $Data[plus];
$posi $start $plus;

    $abfrage="SELECT `betrag`,`von`, SUM(`betrag`) AS `minus` FROM `bank` WHERE `von` = '".mysql_real_escape_string($_SESSION["name"])."' GROUP BY `von`";
    $ergebnis mysql_query($abfrage) or die("$abfrage<hr />" .mysql_error());
     while($Data mysql_fetch_array($ergebnis)){

$minus $Data[minus];
$gesamt $posi $minus;

}} ?>

Aktueller Kontostand: <b><?php echo "$gesamt v€"?></b>



</body>
</html>


Aber er sagt mir jetzt, dass er immer noch nich mag:
Notice: Use of undefined constant plus - assumed 'plus' in /users/allertal/www/welcome/konto.php on line 23
Aktueller Kontostand:
Notice: Undefined variable: gesamt in /users/allertal/www/welcome/konto.php on line 35
v€


Die Konstante plus... Aber das ist ja eigentlich gar keine Konstante, oder?
Kuhmuhphu
Schreib mal lieber
php:
1:
$plus $Data["plus"];
anstatt
php:
1:
$plus $Data[plus];


Muss jetzt natürlich nicht die Lösung des Problems sein..^^ Ist mir nur gerade aufgefallen
Remember
Dankeschön (:
Jetzt sieht ers zumindest schonmal nicht mehr als Konstante ;D
Fehlermeldungen oder so gibt ermir zwar gar keine mehr ... aber es steht auch so rein gar nichts da xD

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
<?php 
include("db.php");
include("checkuser.php"); 
?>

<head>
<link href="stylemain.css" type="text/css" rel="stylesheet">
</head>
<body>
<center>
<h1>Konto</h1><br>



Aktueller Kontostand: <?php
error_reporting(E_ALL);

$start 15000;

    $abfrage="SELECT `betrag`,`zu`, SUM(`betrag`) AS `plus` FROM `bank` WHERE `zu` = '".$_SESSION["name"]."' GROUP BY `zu`";
    $ergebnis mysql_query($abfrage) or die("$abfrage<hr />" .mysql_error());
     while($Data mysql_fetch_array($ergebnis)){

$plus $Data["plus"];
$posi $start $plus;

    $abfrage="SELECT `betrag`,`von`, SUM(`betrag`) AS `minus` FROM `bank` WHERE `von` = '".$_SESSION["name"]."' GROUP BY `von`";
    $ergebnis mysql_query($abfrage) or die("$abfrage<hr />" .mysql_error());
     while($row mysql_fetch_array($ergebnis)){

$minus $row["minus"];
$gesamt $posi $minus;

echo "'.$gesamt.' v€";
}} ?>




</body>
</html>
kext
Warum nimmst du die Hälfte der Änderungen wieder raus? Und warum hast du zwei geschachtelte while-Schleifen? Rechnest du mit mehreren Ergebnissätzen? Probiers mal hiermit:

  • Doctype aktiviert den standardkonformen Modus im Browser.
  • Ohne mysql_real_escape_string kann deine Datenbank gelöscht werden!!!
  • while-Schleifen entfernt. Es kann immer nur eine Zeile im Ergebnis sein!
  • Variablen gehören nicht ins Strings. Verbinde sie mit Punkten.
  • Ich hab aus deinem Variablengewusel einfach mal eine einzige gemacht: $summe.
  • HTML-Code aufgeräumt


php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
<?php 
include("db.php");
include("checkuser.php"); 
?>
<!DOCTYPE html>
<html>
<head>
<link href="stylemain.css" type="text/css" rel="stylesheet" />
</head>
<body>
<h1>Konto</h1>
<p>Aktueller Kontostand: <?php
error_reporting(E_ALL);

$summe 15000;

$abfrage "SELECT SUM(`betrag`) AS `plus` FROM `bank` WHERE `zu` = '".mysql_real_escape_string($_SESSION["name"])."' GROUP BY `zu`";
$ergebnis mysql_query($abfrage) or die($abfrage."<hr />".mysql_error());
$Data mysql_fetch_array($ergebnis);

$summe += $Data["plus"];

$abfrage "SELECT SUM(`betrag`) AS `minus` FROM `bank` WHERE `von` = '".mysql_real_escape_string($_SESSION["name"])."' GROUP BY `von`";
$ergebnis mysql_query($abfrage) or die($abfrage."<hr />".mysql_error());
$Data mysql_fetch_array($ergebnis);

$summe -= $Data["minus"];

echo $summe." v€";
?></p>
</body>
</html>