Since you wrote that you are using MySql you can retrive all of the Mondays in all the date ranges that exist in your table (aka "Start Date" and "End Date") , you can do it by using the following Query:
select DISTINCT * from
(select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) selected_date from
(select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v,
`Tests`
where selected_date between `Tests`.`startDate` and `Tests`.`endDate` and DAYOFWEEK(selected_date)=2
you can test it in sqlfiddle: http://sqlfiddle.com/
use the following schema:
CREATE TABLE Tests
(`id` int, `startDate` DATE,`endDate` DATE)
;
INSERT INTO Tests
(`id`, `startDate`, `endDate`)
VALUES
(1, '2016-03-6', '2016-03-22'),
(2, '2016-03-6', '2016-03-22')
;
and verify with the query above.