se fai una comparazione di date in php dovresti usare un UNIX TIMESTAMP.
Pero' mi pare che se estrai il record secondo il criterio di data between ecc.... gia' la scelta del record sia stata fatta.
poi selezioni il db nella IF e quindi nell'else sei sicuro di averlo selezionato?
In altre parole bisognerebbe valutare anche quello che fai prima.