sto avendo problemi con un ciclo for per creare delle date

in pratica se il range di date non è tra 2 mesi diversi, non ho problemi (per esempio dal 2 al 9 maggio), se invece il range dal 29 aprile al 2 maggio, il loop diventa infinito e mi crea 60 mila record nel database.

Questo è quello che ho adesso:
codice:
$valida_da="2023-05-02";
$valida_fino="2023-05-09";
for ($data = $valida_da; $data <=$valida_fino ; $data++) {
eseguo quello che mi serve
}
in questo modo fa tutto correttamente, se sostiuisco cosi' mi va in loop infinito:
codice:
$valida_da="2023-04-29";
$valida_fino="2023-05-02";
for ($data = $valida_da; $data <=$valida_fino ; $data++) {
eseguo quello che mi serve
}
come mai? come posso risolvere?
Nel database il campo data_prezzo è di tipo date