Come dico sempre, se stai imparando e devi avere delle abitudini, prendi quelle giuste.
Per le date usa il timestamp.
Timestamp è un valore che indica i secondi passati dal 1 gennaio 1970.
Lavorare su numeri interi è molto più semplice che sulle date (parlo per me ma credo in generale sia più intuitivo).
Così se la data di inizio è (esempio con timestamp inventato):
$inizio="16678908768";
e quella finale è:
$fine="16699897578";
tutti i record che hanno data inizio>=(maggiore o uguale)$inizio e la data fine<=(minore o uguale) $fine
li visualizzi.
semplice no?
Per la formattazione del timestamp basta fare:
date("d-m-Y",$inizio);
e la stessa cosa per la fine.