Ergebnis 1 bis 8 von 8
  1. #1
    Ingrid Marie
    Themenstarter
    Avatar von Samurai
    Registriert
    04.2005
    Ort
    In the big City of Cologne
    Beiträge
    269

    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

    Code:
    SELECT SUM(betraege) FROM tabellename;
    und bekomme einen Wert als Ergebnis raus. Soweit so gut.

    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:

    Code:
    $abfrage = "SELECT SUM(betraege) FROM `tabellenname`";
    $ausgabe = mysql_query($abfrage);
    $ergebnis = mysql_num_rows($ausgabe);
    echo "<p><strong>".$ergebnis."</strong> Euro Insgesamt!</p>";
    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?

  2. #2
    drp
    drp ist offline
    Ontario Avatar von drp
    Registriert
    04.2011
    Beiträge
    342
    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>";
    Viele Grüße von DRP - Homepage
     MacBook Air 11,6" |  iPhone 3GS 8GB |  iPad 2 16GB weiß Wi-Fi |  Magic Mouse | PC

  3. #3
    Rheinischer Krummstiel
    Registriert
    08.2005
    Ort
    Augsburg
    Alter
    28
    Beiträge
    381
    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 weiterhelfen
    Macbook Unibody 2,4GHz, 4 GB RAM

  4. #4
    Ingrid Marie
    Themenstarter
    Avatar von Samurai
    Registriert
    04.2005
    Ort
    In the big City of Cologne
    Beiträge
    269
    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 :/

  5. #5
    drp
    drp ist offline
    Ontario Avatar von drp
    Registriert
    04.2011
    Beiträge
    342
    Okay, dann musst du das noch so ändern:
    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>";
    oder anstatt der letzten Zeile:
    Code:
    echo "<p><strong>" . $ergebnis["SUM(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:
    $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

  6. #6
    Ingrid Marie
    Themenstarter
    Avatar von Samurai
    Registriert
    04.2005
    Ort
    In the big City of Cologne
    Beiträge
    269
    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.

  7. #7
    Gala
    Registriert
    04.2010
    Ort
    Mannheim
    Beiträge
    52
    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:
    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>";
    Wie du auf die Summe zugreifen kannst:
    Code:
    $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>";
    Das von DRP angemerkte
    Code:
    $ergebnis["SUM(geld)"]
    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.

  8. #8
    Ingrid Marie
    Themenstarter
    Avatar von Samurai
    Registriert
    04.2005
    Ort
    In the big City of Cologne
    Beiträge
    269
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •