Du er på rette vej med hensyn til, hvordan MySQL fungerer, idet du har forskellige tilstande til ugerelaterede funktioner, der kan give forskellige resultater. http://dev.mysql .com/doc/refman/5.5/da/date-and-time-functions.html#function_week
Det er min forståelse, at MySQL-tilstanden, der svarer til PHP's datologik, er tilstand 3, som er ISO-ugedatostandarden http://en.wikipedia.org/wiki/ISO_week_date
Dette har uger, der starter på mandage og uger nummereret 1-53.
Så du skal bruge WEEK(date_field, 3)
for at få PHP-kompatible værdier.
Som en alternativ tilgang har jeg fundet en ting praktisk i tilfælde, hvor du har brug for muligheden for fleksibelt at forespørge på forskellige datointervaller eller sammenlægninger (Q1-Q4, H1 - H2 osv.), eller hvor du måske skal bruge andre uger end PHP understøtter er at bruge en datohjælpetabel i MySQL (svarende til hvad man kan bruge som en datodimensionstabel i et datavarehus, hvis du er bekendt med det). Det kan give dig en praktisk tabel at deltage i for at slå datointervaller op. Sådan noget burde virke:
http://databobjr.blogspot.com /2012/06/create-date-dimension-table-in-mysql.html