Se devi cancellare i piu' vecchi e tenere solo gli ultimi 50, basta che fai la conta totale, ordini per asc e metti LIMIT (num_tot - 50)

SELECT COUNT(*) as tot FROM TABELLA

if($row['tot'] > 50) { $tot = $row['tot'] - 50;
DELETE FROM TABELLA ORDER BY DATA ASC LIMIT $tot }

fai una prova prima di usare DELETE con una SELECT per vedere se cancelli solo quello che vuoi.