I can't imagine why you would need a category table. This is my understandiung of what you have.
sID int() autonumber,
If you have to sort by all Galician food, you could just perform a "SELECT * WHERE category = 'galician'" query. Unless there's some special data in the category table that I am unaware of.
So if you go without the category table, you don't need the lookup either.
But moot point. The question at hand. Different specials for different times of the day.
I am assuming that you might have the same special for lunch on the February 3 as you had last September 8th for dinner. All an assumption, of course. Perhaps you have a list of dinner specials and a list of lunch specials. If that's the case this might change a bit. But assuming you can pull specials for lunch and dinner from the same place, I would create 2 temporary tables: currentLSpecials and currentDspecials.
Create a web form to let the chefs input new dishes into the specials table. When it comes to creating that days specials, I'd build a form interface that allows the chefs to choose spcials via checkbox that are assigned values from the db, (or go to the input new special page). This would be a form, and pressing submit would cause a query like this:
Do likewise for currentDSpecials. I think this is how I'd do it, but it's untested.
INSERT INTO currentLSpecials
SELECT specials.name, specials.category, specials.descrip
WHERE sID = '$checkbox_value_from_form'
currentLSpecials.menu_order = '$lunch_dinner_radio_on_each_selection_on_form',
currentLSpecials.name = specials.name,
currentLSpecials.category = specials.category,
currentLSpecials.descrip = specials.descrip;