Hm. Ich habe mit MySQL_num_rows() noch nie gearbeitet. Aber um das gesamte Array anzuzeigen kannst du es einfach mal mit print_r($ergebnis) ausgeben und gucken welche Werte es in dem Array gibt. Poste mal was dann ausgegeben wird..
Hem hab mich vertan, mach das mal so:
Code:$abfrage = "SELECT SUM(betraege) FROM `tabellenname`"; $ausgabe = mysql_query($abfrage); $ergebnis = mysql_fetch_assoc($ausgabe); print_r($ergebnis); // echo "<p><strong>".$ergebnis."</strong> Euro Insgesamt!</p>";
Ergebnis 1 bis 8 von 8
- 19.05.2011, 16:24 #1
Ergebnismenge von SQL in PHP übergeben
Hallo,
ich programmier gerade eine kleine HTML-Seite mit Datenbankverbindung.
Ich habe in der Datenbank eine Tabelle wo eine Spalte die Beträge drin stehen. Diese Beträge kann ich per SQL-Abfrage so abfragen das ich diese Beträge summiert haben möchte mit
und bekomme einen Wert als Ergebnis raus. Soweit so gut.Code:SELECT SUM(betraege) FROM tabellename;
Nun wie mache ich das über PHP/HTML Seite so das ich diesen einen Wert übergeben bekomme und es anzeigen lassen kann.
Mir ist klar das ich vorher die Datenbankverbindung aufbauen muss usw. und hab es mal so umgesetzt:
Irgendwie hab ich das gefühl dass ich mit mysql_num_rows was falsch mache. Denn wenn ich so mache wie da steht bekomme ich als "1" zurück, klar das im $ergebnis nur ein Wert drin steht. Nur wir bekomme ich das hin, dass er mit dieses Wert was drin steht ausgibt?Code:$abfrage = "SELECT SUM(betraege) FROM `tabellenname`"; $ausgabe = mysql_query($abfrage); $ergebnis = mysql_num_rows($ausgabe); echo "<p><strong>".$ergebnis."</strong> Euro Insgesamt!</p>";
- 19.05.2011, 16:37 #2Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 19.05.2011, 16:44 #3
So als Tipp

http://php.net/manual/de/function.mysql-num-rows.php
Das macht was ganz was anderes...
das schon genannte fetch_assoc oder ähnlcihe funktionen werden die weiterhelfenMacbook Unibody 2,4GHz, 4 GB RAM
- 19.05.2011, 16:56 #4
Hi dpr,
danke für deine Hilfe, da sind wir schon einen Schritt näher,
wenn ich alles mit deinem Quellcode ausführe kommt auf dem Browser sowas raus:
Array ( [SUM(geld)] => 50 )
Also die 50 sind korrekt.
Aber wie krieg ich das jetzt dies jetzt mit dem schönen Text den du auskommentiert hast hin, ohne Array...?
@Sid.Tux Danke für die Seite habe auch schon versucht mit mysql_result aber da zeigt der mit nix mehr an :/
- 19.05.2011, 17:38 #5
Okay, dann musst du das noch so ändern:
oder anstatt der letzten Zeile:Code:$abfrage = "SELECT SUM(betraege) FROM `tabellenname`"; $ausgabe = mysql_query($abfrage); $ergebnis = mysql_fetch_assoc($ausgabe); echo "<p><strong>" . $ergebnis["geld"] ."</strong> Euro Insgesamt!</p>";
Bin mir nicht ganz sicher... Das mit dem Sum(geld) ist etwas seltsam. Aber ansonsten machst du das ganze einfach so:Code:echo "<p><strong>" . $ergebnis["SUM(geld)"] ."</strong> Euro Insgesamt!</p>";
Code:$abfrage = "SELECT * FROM `tabellenname`"; $ausgabe = mysql_query($abfrage); $ganzesgeld = 0; while($ergebnis = mysql_fetch_assoc($ausgabe)) { /* Schleife, die für jeden Eintrag die Variable $ganzesgeld um $geld der jeweiligen Spalte erhöht. */ $geld = $ergebnis["geld"]; $ganzesgeld = $ganzesgeld + $geld; } echo "<p><strong>" . $ganzesgeld ."</strong> Euro Insgesamt!</p>";Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 19.05.2011, 17:50 #6
Tatsächlich, dein Code mit der while Schleife war korrekt und genau das gewünschte Ergebnis.
Ich dachte, wenn ich per SQL-Abfrage los starte und danach das Ergebnis als Wert abspeichere und entsprechend ausgeben will. Hätte nicht gedacht dass ich es mit der while-Schleife machen soll. Aber gut. Ich danke dir vielen mals.
- 20.05.2011, 10:58 #7
Das ganze geht auch mit deinem SUM um das in der Datenbank berechnen zu lassen, was schneller ist als das ganze in PHP per Schleife zu berechnen:
Dein Ursprungscode:
Wie du auf die Summe zugreifen kannst:Code:$abfrage = "SELECT SUM(betraege) FROM `tabellenname`"; $ausgabe = mysql_query($abfrage); $ergebnis = mysql_fetch_assoc($ausgabe); echo "<p><strong>" . $ergebnis["geld"] ."</strong> Euro Insgesamt!</p>";
Das von DRP angemerkteCode:$abfrage = "SELECT SUM(betraege) AS 'geldsumme' FROM `tabellenname`"; $ausgabe = mysql_query($abfrage); $ergebnis = mysql_fetch_assoc($ausgabe); echo "<p><strong>" . $ergebnis["geldsumme"] ."</strong> Euro Insgesamt!</p>";
ist eben die Bezeichnung für dein Summenfeld. Die Datenbank ersetzt quasi die Spalte "Geld" durch eine Spalte mit dem Namen "SUM(Geld)". Daher gibt man üblicherweise , wenn man soetwas verwendet, noch einen Alias mit wie ich es oben beschrieben habe. Damit hat man dann wieder einen ansprechenden und verwendbaren Spaltennamen, den man ganz normal auslesen kann.Code:$ergebnis["SUM(geld)"]
- 20.05.2011, 12:25 #8
Danke Seaker, hab jetzt nun auch verstanden. Nur wusste ich vorher nicht wie ich es umsetzen konnte bzw. was bei mir jetzt so falsch war. Aber jetzt habe ich den Fehler erkannt.


Zitieren



