Ok, saa er jeg med igen.
Af en eller anden grund har du ikke givet mig navnet paa tabellen, og jeg gaetter paa at du gemmer flere ting i tabellen end id, orderdate, og antal, men det du ogsaa af en eller anden grund heller ikke fortalt. (Hvad har du egenligt i den tabel som er saa hemmeligt?) Jeg har derfor i mine tests gaaet ud fra en tabel med navnet mjl1 og med de tre kolonner id INT, orderdate INT, og antal INT og med auto-nummerering af id feltet.
Det ser saa ud til at du, naar du opretter en ny ordre, fastsaetter opretelsestidspunktet med 'time()' og gemmer det i databasen. Jeg gaar ud fra denne kode:
$dato = time();
$antal = ???
mysql_query("INSERT INTO mjl1 VALUES(NULL, $dato, $antal"); (Med NULL laver du plads til automatisk indsaettelse af den naeste id vaerdi.)
Jeg foreslaar, som tidligere sagt, at du gaar over til at gemme dato og tid med datatypen DATETIME i stedet for med INT. Du kan oprette en ny tabel i mysql saaledes:
CREATE TABLE mjl2(id INT, orderdate DATATIME, antal INT);
Du omsaetter INT orderdate vaerdierne til DATETIME vaerdier med FROM_UNIXTIME(orderdate). Du kan automatisk indsaette vaerdierne fra mjl1 i mjl2 saaledes:
INSERT INTO mjl2 SELECT NULL, FROM_UNIXTIME(orderdate), antal FROM mjl1
og saa maa du aendre din php kode til at indsaette nye ordrer saaledes:
mysql_query("INSERT INTO mjl2 VALUES(NULL, NOW(), $antal");
Og endelig kommer jeg tilbage til dit oprindelige spoergsmaal, finde summen ar antal per ugenummer. Her vil jeg foreslaa denne kode:
<?
$link = [connection to database]
$result = mysql_query("SELECT WEEK(orderdate) as week, SUM(antal) as antal FROM mjl2 GROUP BY week")or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$week = $row['week'];
$antal = $row['antal'];
echo "uge $week total antal $antal <br>";
}
mysql_close($link);
?>
Med en testside (som du kan se her
http://christianjorgensen.be/mjl.php ) og en minimal testdatabase fik jeg dette resultat:
uge 2 total antal 30
uge 8 total antal 50