mysqli SELECT SUM Ergebnis in PHP ausgeben

TMM

Mitglied
Hallo,
ich möchte in PHP via mysqli mehrere Tabellenfelder addieren lassen und danach das Ergebnis ausgeben und komm einfach nicht auf die richtige Lösung...

Soweit ist die Abfrage mal vorbereitet:

PHP:
// Abfrage der derzeitig benötigten Tankkapazität
  $stmt = $db->prepare(
          ' SELECT
                    SUM(liter)
            FROM
                    USER_TANKLAGER
            WHERE
                    user_name = ? ');
                    
  //  Parameter füllen
  $stmt->bind_param('s', $_SESSION['username']);
  
  // Statement abschicken
  $stmt->execute();


Ich bin gerade völlig blind und komm einfach nicht drauf, wie ich nun an das Ergebnis kommen kann...
habe es mit bind_param probiert, allerdings liefert er mir dann nur NULL zurück (was nicht sein kann, da das Ergebnis beim Test eigentlich 2.500 lauten müsste.

Freue mich auf einen funktionierenden Lösungsvorschlag, danke!
 
gemäss PHP-Hilfe: Methode fetch()
PHP:
..
$stmt->bind_param('s', $_SESSION['username']);
$stmt->execute();  
$stmt->fetch();
echo $_SESSION['username'];
 
Hallo Yaslaw,

leider sehe ich derzeit den Wald vor lauter Bäumen nicht (bin wohl schon zu lange mit dem gleichen Problem beschäftigt...)

Hier der aktuelle Code:
PHP:
<?php

    // Query vorbereiten und an die DB schicken
    $stmt = $db->prepare(
            'SELECT 
                  SUM(liter) AS TOTAL 
            FROM 
                  USER_TANKLAGER
            WHERE
                  user_name = ?');
                  
    //  Parameter füllen
    $stmt->bind_param('s', $_SESSION['username']);
    
    $stmt->execute();
    
    $stmt->fetch($benoetigte_tank_kapazitaet);
      echo $benoetigte_tank_kapazitaet;
      
    $stmt->close();

 
?>

Und die dazugehörige Fehlermeldung:

Warning: mysqli_stmt::fetch() expects exactly 0 parameters, 1 given in /home/.../public_html/.../php/abfrage_benoetigte_tankkapazitaet.php on line 17

Er meckert anscheinend, weil ich dem fetch eine Variable mitgegeben habe...
Meine Frage war ja, wie ich die Werte der gefundenen Felder selektiere, dann zusammenzähle und das Ergebnis dann in PHP ausgebe.
Die obige Abfrage funktioniert im myAdmin einwandfrei und er liefert dort das richtige Ergebnis, mir ist nur nicht klar, wie ich dieses dann ausgeben lassen kann (ohne Fehlermeldung) :-(
 
Hi,

PHP:
$stmt = $db->prepare(
            'SELECT 
                  SUM(liter) AS TOTAL 
            FROM 
                  USER_TANKLAGER
            WHERE
                  user_name = ?');

//  Parameter füllen
$stmt->bind_param('s', $_SESSION['username']);
    
$stmt->execute();

$stmt->bind_result($benoetigte_tank_kapazitaet);
$stmt->fetch();

echo $benoetigte_tank_kapazitaet;

Best regards
 
Zuletzt bearbeitet:
Dochdoch, das execute() ist weiterhin nötig. Siehe das Beispiel hier.

Habe das Snippet mal vervollständigt. :) Und auch ich arbeite nicht mit MySQLi, deswegen übernehem ich keine Garantie für fehlerfreien Code. :D
 
er liefert mir ein Ergebnis sowohl mit, als auch ohne execute()

allerdings nicht das was ich haben will

ohne execute() Ergebnis:
bool(false)

mit execute() Ergebnis:
bool(true)

ich möchte aber, dass er die Felder zusammenzählt, im Beispiel INT mit je 1250 müsste also 2500 ergeben....
 
PHP:
<?php

    // Query vorbereiten und an die DB schicken
    $stmt = $db->prepare(
            'SELECT 
                  SUM(liter) AS TOTAL 
            FROM 
                  USER_TANKLAGER
            WHERE
                  user_name = ?');
                  
    //  Parameter füllen
    $stmt->bind_param('s', $_SESSION['username']);
    
    $stmt->execute();
    
    $benoetigte_tank_kapazitaet = $stmt->fetch();
    
    var_dump($benoetigte_tank_kapazitaet);
    
      echo $benoetigte_tank_kapazitaet["TOTAL"]; 
      
    $stmt->close();

 
?>
 

Neue Beiträge

Zurück