Vous êtes sur la bonne voie en ce qui concerne le fonctionnement de MySQL, avec différents modes pour les fonctions liées à la semaine qui peuvent produire des résultats différents. http://dev.mysql .com/doc/refman/5.5/en/date-and-time-functions.html#function_week
Si j'ai bien compris, le mode MySQL qui équivaut à la logique de date de PHP est le mode 3, qui est la norme de date de semaine ISO http://en.wikipedia.org/wiki/ISO_week_date
Cela a des semaines commençant le lundi et des semaines numérotées de 1 à 53.
Vous devrez donc utiliser WEEK(date_field, 3)
pour obtenir des valeurs compatibles PHP.
Comme approche alternative, une chose que j'ai trouvée pratique dans les cas où vous avez besoin de la possibilité d'interroger de manière flexible sur différentes plages de dates ou agrégations (Q1- Q4, H1 - H2, etc.), ou où vous pourriez avoir besoin d'utiliser différentes semaines que PHP prend en charge l'utilisation d'une table d'assistance de date dans MySQL (similaire à ce que l'on peut utiliser comme table de dimension de date dans un entrepôt de données, si vous êtes familier avec cela). Il peut vous donner un tableau pratique à joindre afin de rechercher des plages de dates. Quelque chose comme ceci devrait fonctionner :
http://databobjr.blogspot.com /2012/06/create-date-dimension-table-in-mysql.html