Ik heb een webshop en wil een overzicht van de orders per week in kaart brengen. Ik heb het voor elkaar gekregen om per week de orders op te tellen met de omzet er bij. In principe niet zo moeilijk allemaal.

Maar nu komt het. In week 36 van 2011 ben ik er mee begonnen en nu zitten we in week 39 van 2012 volgens mij en laat hij de gegevens na week 36 (2012) niet zien. Ik krijg het niet voor elkaar om dat goed uit te lezen. Wie kan me hier mee helpen?

Dit is mijn MySql query:
"SELECT `content`, WEEK(`updated_at`) AS week, YEAR(`updated_at`) AS jaar, COUNT(`id`) as id, SUM(`price_total`) as totaal FROM cart WHERE order_status = 'completed (payed)' or order_status = 'completed (not payed)' GROUP BY week ORDER BY jaar DESC, week DESC"
Vervang WEEK() door YEARWEEK().

Dat geeft een waarde van bv. "201239" (= jaar 2012, week 39)
YEARWEEK zal unieke weken leveren.

Als je "GROUP BY week" doet, zoals je nu doet, wordt geen rekening gehouden met het jaar. Dan worden bv. de records van week 36 van 2011 opgeteld bij die van week 36 van 2012
Heel erg bedankt voor je snelle reactie! Het is nu gelukt!

Misschien dat je me ook met een andere issue kunt helpen?

Bestellingen worden nu in de database gezet en krijgen de volgende waarden:

a:2:{i:0;a:4:{s:12:"choice_waste";i:4;s:16:"choice_container";i:12;s:10:"start_date";s:10:"18-09-2012";s:8:"end_date";s:0:"";}i:1;a:4:{s:12:"choice_waste";i:8;s:16:"choice_container";i:12;s:10:"start_date";s:10:"18-09-2012";s:8:"end_date";s:0:"";}}

Nu heb ik dat al uit kunnen lezen en komt er iets als dit:

Array ( [choice_waste] => 7 [choice_container] => 11 [start_date] => 17-09-2012 [end_date] => 20-09-2012 )

Maar nu wil ik nog graag dat choice_waste => 7 gelijk wordt aan bijvoorbeeld HOUT. Is dat ook te doen?
Oei, een database die niet genormaliseerd is. In principe probeert men te vermijden dat meerdere gegevens in 1 veld komen. Anders kom je tot ... dit soort problemen.


Hoe kom je tot de relatie 7 => hout?
Een andere tabel in de DB waar id=7 een waarde "hout" bevat?
Ja het is niet mijn eigen webshop en ik schrok hier ook van.

Er zijn meerdere tabellen. De choise_waste is een tabel en choice_container ook. En in die tabel staat het ID 7 voor Hout. Dus best wel irritant..
Je wordt dan bijna verplicht tot 1 van twee mogelijkheden:
1) alle records van die categorieën sowieso laden en in een array steken.
2) in we while-lus - waar je de records fetcht - telkens de gekoppelde waarden opnieuw ophalen, met mysql_query(...)

Als iemand iets beter weet: zeg het vooral, he.

Of 1) of 2) beter is, lijkt me vooral af te hangen van de verhouding (aantal categorieën / aantal records die getoond worden). Maar waarschijnlijk is 1) toch het meest geschikt.

Reageren