Datenbankabfrage mit WHERE und Sum

ich stelle mich gerade wieder an wie das erste auto

habe das jetzt so:
PHP:
<?
$daten = mysql_fetch_array(db_query("SELECT SUM(t.betrag) FROM ".$db_prefix."_buchungen AS t WHERE DATE(FROM_UNIXTIME(t.datum)) = DATE(NOW() - INTERVAL 1 DAY)" ));

echo $daten['t'];

aber ausgeben tut er mir nichts. :-(
 
db_query ist eine funktion bei mir sieht so aus:

PHP:
function db_query($sql_tag){
global $count_query;
    $count_query++;
    $vargs = array();
    $fargs = func_get_args();
    foreach($fargs as $key => $arg){
      $vargs[$key] = mysql_real_escape_string($arg);
    }
    array_shift($vargs);
    $sql_tag = vsprintf($sql_tag,$vargs);
    if($ret = mysql_query($sql_tag)){
      return $ret;
    }else{
      return 0;
    }
  }
 
das sollte auch keinen fehler haben sonst hätte ich mehr probleme auf der seite :-)
die frage war eigentlich warum ich nun keien ausgabe habe, warum das echo nichts ausgiebt.
 
Und die Antwort bliebt: Debuggen.

Dann merkst du auch, dass das SQL kein Feld namens t besitzt. Mit Debuggen würdest du eine Warnung bekommen, dass der Array $daten keinen Key t hat.

Setz auf die SUM() noch ein Alias und frage dann diesen ab.
 
habe es jetzt so gelöst
PHP:
<?
$daten = mysql_fetch_array(db_query("SELECT SUM(buchungsmenge) AS t FROM ".$db_prefix."_buchungen WHERE DATE(FROM_UNIXTIME(buchungszeit)) = DATE(NOW()) AND wahrung = 'X-Coins' AND uid = '$_SESSION[uid]' " ));

echo $daten['t'];
habe da noch ein wenig erweitert und so klappt es auch ohne probleme.
 
Zurück