Ho trovato l'anomalia del primo script.
Praticamente se oggi (lunedì) faccio questa query:

Codice PHP:
SELECT FROM $table WHERE curdate() BETWEEN data_inizio AND data_fine ORDER BY categoria 
non mi estrapola i record che hanno data_inizio e data_fine uguali.

Esempio 1 ( data_inizio=2007-02-11 | data_fine 2007-02-11 )
Esempio 2 ( data_inizio=2007-02-05 | data_fine 2007-02-05 )
Questi record non compaiono nella query.