Ergebnisse anhand des Wochentages filtern

xtramen01

Erfahrenes Mitglied
Hallo Leute,

weis jemand ob es möglich ist die Ergebnisse eines Arrays welches ich aus einer DB erhalte nach Wochentagen zu filtern?

Das Array enthält Datumswerte im Format "date" und den Umsatz.

Nun möchte ich alle Umsätze haben die z.b. Montags getätigt wurden.

Geht das überhaupt?

Gruss
 
Hi,

jetzt hab ich aber doch noch eine Frage die ich mit der SQL Abfrage alleine leider nicht gebacken bekomme und auch sonst keine Idee habe das zu realisieren.

Ich frage mit dieser Funktion meine Umsätze des jeweiligen Tages in dieser KW ab.
Klappt auch prima.

Aber wie schaffe ich es das ich noch das Datum heruasbekomme.

Die Wochentage habe ich ja statisch in einem Array abgespeichert und kann dann mit der Funktion jedem Wochentag einen Wert zuweisen.

Perfekt wäre es aber wenn ich wie geschrieben, das Datum noch hätte für jeden Wochentag.

PHP:
function umsatz_tag($tag){
    $query = "SELECT sum(ot.value) as umsatz_count FROM " . TABLE_ORDERS_TOTAL . " ot left join " . TABLE_ORDERS . " o on o.orders_id = ot.orders_id where ot.class ='ot_total' and WEEKOFYEAR(CURDATE()) and weekday(date_purchased) = '".$tag."'";
    $result = tep_db_query($query);
    $row = tep_db_fetch_array($result);     
	return $row['umsatz_count'];
	}

PHP:
$data = array(
  array('Mo', umsatz_tag('0')),    
  array('Di', umsatz_tag('1')),    
  array('Mi', umsatz_tag('2')),
  array('Do', umsatz_tag('3')),   
  array('Fr', umsatz_tag('4')),   
  array('Sa', umsatz_tag('5')),
  array('So', umsatz_tag('6')),   
);

Viele Grüße
 
Zuletzt bearbeitet:
Das Datum hast du ja im Feld date_purchased
Ergo musst du das nur noch mit ausgeben. Um die Summe zu bekommen musst du über das Feld gruppieren

SQL:
SELECT 
	date_purchased,
	SUM(ot.value) AS umsatz_count 
FROM 
	{TABLE_ORDERS_TOTAL} AS ot 
	LEFT JOIN {TABLE_ORDERS} AS  o 
		ON o.orders_id = ot.orders_id 
WHERE 
	ot.class ='ot_total' 
	AND WEEKOFYEAR(CURDATE()) 
	AND WEEKDAY(date_purchased) = '{$tag}'
GROUP BY
	date_purchased
Falls date_purchased auch noch die Zeit beinhaltet, musst du es zuerst in ein reines Datum wandeln.
DATE(date_purchased)
 
Zuletzt bearbeitet von einem Moderator:
Zurück