Daar komt een mooie lijngrafiek uit en een tabel (x-as jaren, y-as maanden).
In die tabel wil ik nu eigenlijk de beste maand van alle jaren een andere kleur geven.
Stel ik heb $omzet[2015][11], hoe kan ik dan het beste checken of dit wel of niet de hoogste is vergeleken met $omzet[2012][11], $omzet[2013][11], $omzet[2014][11], $omzet[2016][11]?
Ik heb zelf het idee dat ik het te moeilijk ga zoeken.
Misschien is er een handige array-functie voor (geen idee) maar anders zou je gewoon alle waardes in de array kunnen doorlopen.
Stel we noemen de array met alles maanden en omzetten voor het gemak even $values. Vervolgens gebruik je daarnaast nog een variabele (array) bijv. $highest.
Nu ga je de $values array doorlopen. In die loop controleer je of $highest geset (isset) is. Zo niet dan sla je in $highest de maand en de waarde van de omzet op (dit is dus automatisch de eerste maand in de loop). Vervolgens doorloop je de rest van de loop en controleer je of de omzet hoger is dan de omzet die je in $highest hebt opgeslagen. Zo ja, dan sla je de nieuwe maand en omzet op in $highest. Na het doorlopen van de loop zit dan in $highest de maand met de hoogste omzet.
In $m zit het maandnummer dat ik wil controleren, in $j het jaartal dat ik wil controleren.
In $omzet zit dus de genoemde array met de maandomzetten per maand, per jaar.
Ik krijg nu netjes true terug als het ingegeven maand/jaar de beste maand is (dus wel of niet de beste februari van de afgelopen jaren) en false als het niet is.
Ah oke ... ik dacht dat je 1 maand eruit wilde hebben die van alle maanden de beste is, maar als ik je nu goed begrijp wil je dus de beste januari, de beste februari, de beste maart enz. van de afgelopen jaren?
als ik je nu goed begrijp wil je dus de beste januari, de beste februari, de beste maart enz. van de afgelopen jaren?
In een tabel staan van elke maand de maandomzetten. De cel met de beste januari (van die rij jaren), de cel met de beste februari etc wil ik een andere kleur geven.
Dus alle maanden worden weergegeven, enkel de beste maand wil ik een andere kleur geven.
de brondata te gebruiken (database?) om de waarden die je zoekt op te halen.
Het komt inderdaad uit een database. Versimpelt:
SELECT
SUM(aantal * prijs) - korting AS omzet
, MONTH(vandatum) AS maand
FROM
tabel
LEFT JOIN .. ON .. = .. // een aantal JOINS (voor hier nu onbelangrijk)
WHERE
status_ID IN (4,5)
AND YEAR(vandatum) = '".(date('Y') - 5)."'
AND soort IN (1,2,3,4,5,9,11)
GROUP BY
MONTH(vandatum)
ORDER BY
MONTH(vandatum) ASC
Op zich werkt het nu goed met die paar regeltjes function. Maar wellicht kan het inderdaad nog makkelijker direct vanuit de database.