Mi hai davvero aiutato tantissimo, grazie! I suggerimenti per migliorare il codice sono chiari e utilissimi, avevo davvero scritto cose inutili!

Le due date nella form le costruivo già tramite 3 select ciascuna. Lo scopo del controllo sulla data era nel caso $data_da/$data_a corrispondessero a '' o NULL se il campo non era stato compilato.
Come dici tu, basta che ora nelle select metta come primo valore selected 00/0000, io avevo messo -1 ma non ha molto senso :P inoltre 00/0000 mi risparmia un controllo sulle date, che posso mandare direttamente in query.

I risultati della query adesso, come immaginerai, sono quelli giusti. Io mi mangio le mani per essermi persa in un bicchier d'acqua, ma non si finisce mai di imparare

Originariamente inviato da piero.mac
Ho, come dire ... la sensazione che possa essere lungo il tempo necessario per darti una mano e purtroppo non ho tutto il tempo che vorrei.
L'aiuto datomi finora è più che sufficiente, sei stato gentilissimo ed esauriente. Se poi hai davvero voglia di rimettere mano a un codice così disastrato a me farà solo piacere, ma non ti sentire in obbligo.
Grazie ancora del tuo tempo e della tua gentilezza!