No necesitas repetir el registro, solamente recuperarlo en las fechas y dias indicados.
Para esto, tal vez necesites crear un campo para cada dia de la semana o guardar los dias con algun tipo de codificacion, yo me inclino mas por la segunda opcion, ya que es mas facil comprobar con 1 solo campo. Ejemplo, puesto que los valores son de 0 (domingo) a 6 (sabado) puedes separarlos por comas.
"1,2,3,4" En esta cadena estan los numeros correspondientes para lunes a jueves.
Tu codigo PHP seria:
Código PHP:
// 1- Detecta la fecha actual y el dia de la semana
$hoy = time();
$dia = intval(date('w', $hoy));
// 2- Genera la fecha de comparacion de acuerdo al formato en que las guardas en tu base de datos
// Yo uso timestamp para las fechas y no se si esto sea suficiente:
$hoy_sql = date('Y-m-d', $hoy);
// 3- Lee el menu del dia, obteniendo solo lo que este dentro de los rangos permitidos:
$query = "SELECT FROM f.*, m.* FROM menu m, fechas f WHERE f.fech_inicio => $hoy_sql AND f.fech_termino <= $hoy_sql AND f.dias LIKE '%$dia%' AND m.id = f.id";
Edito: estoy suponiendo que usas dos tablas, de cualquier forma, solo adapta el codigo a tus necesidades.