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
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
Remember
Was sag ich?
Ich bin einfach ein dummes Mädchen
Dankeschön
edit/
Höhm. Ich mag Kontos nich
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> |
|